我正在学习将 Gekko 的大脑模块用于深度学习应用程序。
我一直在建立一个神经网络来学习 numpy.cos() 函数,然后产生类似的结果。
当我的训练范围是:
x = np.linspace(0,2*np.pi,100)
但是当我尝试将边界扩展到:
x = np.linspace(0,3*np.pi,100)
我需要在我的神经网络中进行哪些更改以增加我的模型的灵活性,以便它适用于其他范围?
这是我的代码:
from gekko import brain
import numpy as np
import matplotlib.pyplot as plt
#Set up neural network
b = brain.Brain()
b.input_layer(1)
b.layer(linear=2)
b.layer(tanh=2)
b.layer(linear=2)
b.output_layer(1)
#Train neural network
x = np.linspace(0,2*np.pi,100)
y = np.cos(x)
b.learn(x,y)
#Calculate using trained nueral network
xp = np.linspace(-2*np.pi,4*np.pi,100)
yp = b.think(xp)
#Plot results
plt.figure()
plt.plot(x,y,'bo')
plt.plot(xp,yp[0],'r-')
plt.show()
这些是 2pi 的结果:
这些是 3pi 的结果: