【发布时间】:2019-05-19 01:49:54
【问题描述】:
我正在尝试使用 keras 模型来近似函数,该模型只有一个隐藏层,无论我做什么 - 我都无法达到必要的结果。
我正在尝试使用以下代码来实现
from __future__ import print_function
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
from LABS.ZeroLab import E_Function as dataset5
train_size = 2000
# 2 model and data initializing
(x_train, y_train), (x_test, y_test) = dataset5.load_data(train_size=train_size, show=True)
model = Sequential()
model.add(Dense(50, kernel_initializer='he_uniform', bias_initializer='he_uniform', activation='sigmoid'))
model.add(Dense(1, kernel_initializer='he_uniform', bias_initializer='he_uniform', activation='linear'))
model.compile(optimizer=Adam(), loss='mae', metrics=['mae'])
history = model.fit(x=x_train, y=y_train, batch_size=20, epochs=10000, validation_data=(x_test, y_test), verbose=1)
It's function that loads from dataset5
It's comparison of model prediction with testing data
我尝试用不同的优化器和神经元数量(从 50 到 300)来拟合这个网络,但结果是一样的。
我应该改变什么?
【问题讨论】:
-
数据集在某处可用吗?
-
你应该使用标准神经网络吗?数据看起来像一个时间序列,所以我会使用 RNN 或其他东西,但我只是想确定一下。我对它预测数据的中间部分并不感到惊讶,因为这基本上就是它的优化目标
-
@Ian Quah 是的,我应该使用标准神经网络。我试着用 NN 来近似这个函数,它有 2 个隐藏层,结果要好得多。您可以通过以下链接查看它github.com/DanilaEremenko/NeuralNetwork/blob/demo/LABS/…我的朋友使用matlab,他用1个隐藏层和非常小的损失来近似这个函数,使用与NN相同的结构。
-
@sdcbr 你可以在这里看到数据集的可视化i.stack.imgur.com/VX2f5.png
标签: python tensorflow machine-learning keras approximation