小编use*_*687的帖子

简单的回归神经网络输入形状

我试图用keras编写一个非常简单的RNN示例,但结果并不像预期的那样.

我的X_train是一个长度为6000的重复列表,如: 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, ...

我将其格式化为: (6000, 1, 1)

我的y_train是一个长度为6000的重复列表,如: 1, 0.8, 0.6, 0, 0, 0, 1, 0.8, 0.6, 0, ...

我将其格式化为: (6000, 1)

根据我的理解,递归神经网络应该学会正确地预测0.8和0.6,因为它可以记住两个时间段前X_train中的1.

我的模特:

model=Sequential()
model.add(SimpleRNN(input_dim=1, output_dim=50))
model.add(Dense(output_dim=1, activation = "sigmoid"))
model.compile(loss="mse", optimizer="rmsprop")
model.fit(X_train, y_train, nb_epoch=10, batch_size=32)
Run Code Online (Sandbox Code Playgroud)

该模型可以成功训练,损失最小〜0.1015但结果不如预期.

test case ---------------------------------------------  model result -------------expected result 

model.predict(np.array([[[1]]])) --------------------0.9825--------------------1

model.predict(np.array([[[1],[0]]])) ----------------0.2081--------------------0.8

model.predict(np.array([[[1],[0],[0]]])) ------------0.2778 -------------------0.6

model.predict(np.array([[[1],[0],[0],[0]]]))---------0.3186--------------------0
Run Code Online (Sandbox Code Playgroud)

我在这里有什么误解吗?

python neural-network keras recurrent-neural-network

7
推荐指数
1
解决办法
5669
查看次数