我正在尝试构建一个非常简单的 NN 来近似线性函数(字面意思)。
我拿了一个表格数据:
f(x) = 5 * x
形状:
现在我正在使用 Keras 构建一个非常简单的 NN:
from keras.models import Sequential
from keras.layers import Dense
from keras.layers.core import Activation, Dense
# define base mode
def baseline_model():
# create model
model = Sequential()
model.add(Dense(1, input_dim=1, init='normal', activation='relu'))
model.add(Dense(1, init='normal'))
model.compile(loss='mean_squared_error', optimizer='adam')
return model
regr = baseline_model()
regr.fit(X_train, Y_train,
nb_epoch=200, validation_split=0.2, verbose = 1) #batch_size=5,
并获得完全浪费的输出:
Epoch 197/200
64/64 [==============================] - 0s - loss: 34810.5195 - val_loss: 131652.9375
Epoch 198/200
64/64 [==============================] - 0s - loss: 34809.8574 - val_loss: 131651.5000
Epoch 199/200
64/64 [==============================] - 0s - loss: 34809.2266 - val_loss: 131650.0781
Epoch 200/200
64/64 [==============================] - 0s - loss: 34808.5801 - val_loss: 131648.6406
通过绘制它来确认:
plt.scatter(X_test, Y_test, color='black')
plt.plot(X_test, regr.predict(X_test), color='blue',
linewidth=3)
plt.xticks()
plt.yticks()
plt.show()
我有两个假设:
- 我的模型非常非常错误。
- 我正在使用 Keras 而不是它的设计方式。
请帮忙。