मैं गहरी सीखने के अनुप्रयोगों के लिए 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 के परिणाम हैं: