【发布时间】:2020-01-26 02:28:15
【问题描述】:
我是机器学习新手
我正在构建一个能够预测简单 sin 函数的简单模型
我生成了一些 sin 值,并将它们输入到我的模型中。
from math import sin
xs = np.arange(-10, 40, 0.1)
squarer = lambda t: sin(t)
vfunc = np.vectorize(squarer)
ys = vfunc(xs)
model= Sequential()
model.add(Dense(units=256, input_shape=(1,), activation="tanh"))
model.add(Dense(units=256, activation="tanh"))
..a number of layers here
model.add(Dense(units=256, activation="tanh"))
model.add(Dense(units=1))
model.compile(optimizer="sgd", loss="mse")
model.fit(xs, ys, epochs=500, verbose=0)
然后我生成一些测试数据,它覆盖了我的学习数据,但也引入了一些新数据
test_xs = np.arange(-15, 45, 0.01)
test_ys = model.predict(test_xs)
plt.plot(xs, ys)
plt.plot(test_xs, test_ys)
预测数据和学习数据如下所示。我添加的层越多,曲线网络能够学习的越多,但训练过程会增加。
有没有办法让它为任意数量的曲线预测sin?最好使用少量层数。
【问题讨论】:
标签: machine-learning neural-network keras