我正在学习将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的结果: