Saya belajar menggunakan modul otak Gekko untuk aplikasi pembelajaran yang mendalam.
Saya telah menyiapkan jaringan saraf untuk mempelajari fungsi numpy.cos () dan kemudian menghasilkan hasil yang serupa.
Saya mendapatkan kecocokan yang baik ketika batasan pada pelatihan saya adalah:
x = np.linspace(0,2*np.pi,100)
Tetapi model berantakan ketika saya mencoba untuk memperpanjang batas ke:
x = np.linspace(0,3*np.pi,100)
Apa yang perlu saya ubah di jaringan saraf saya untuk meningkatkan fleksibilitas model saya sehingga bekerja untuk batas lainnya?
Ini kode saya:
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()
Ini adalah hasil untuk 2pi:
Ini adalah hasil untuk 3pi: