Ich lerne, Gekkos Gehirnmodul für Deep-Learning-Anwendungen zu verwenden.
Ich habe ein neuronales Netzwerk eingerichtet, um die Funktion numpy.cos () zu lernen und dann ähnliche Ergebnisse zu erzielen.
Ich bekomme eine gute Passform, wenn die Grenzen meines Trainings sind:
x = np.linspace(0,2*np.pi,100)
Aber das Modell fällt auseinander, wenn ich versuche, die Grenzen zu erweitern auf:
x = np.linspace(0,3*np.pi,100)
Was muss ich in meinem neuronalen Netzwerk ändern, um die Flexibilität meines Modells zu erhöhen, damit es für andere Grenzen funktioniert?
Das ist mein Code:
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()
Dies sind Ergebnisse zu 2pi:
Dies sind Ergebnisse zu 3pi: