ฉันกำลังเรียนรู้ที่จะใช้โมดูลสมองของ 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: