Tôi đang học cách sử dụng mô-đun não của Gekko cho các ứng dụng học sâu.
Tôi đã thiết lập một mạng lưới thần kinh để tìm hiểu hàm numpy.cos () và sau đó tạo ra kết quả tương tự.
Tôi có được một sự phù hợp tốt khi giới hạn đào tạo của tôi là:
x = np.linspace(0,2*np.pi,100)
Nhưng mô hình sụp đổ khi tôi cố gắng mở rộng giới hạn để:
x = np.linspace(0,3*np.pi,100)
Tôi cần làm gì để thay đổi trong mạng lưới thần kinh của mình để tăng tính linh hoạt cho mô hình của tôi để nó hoạt động cho các giới hạn khác?
Đây là mã của tôi:
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()
Đây là kết quả tới 2pi:
Đây là kết quả đến 3pi: