딥 러닝 애플리케이션에 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에 대한 결과입니다.