繁体   English   中英

Keras 顺序模型没有尺寸不匹配?

[英]No dimension mismatch for Keras sequential model?

我用 Keras 创建了一个顺序神经网络,输入为 4,输出为 8。我意识到我所做的不正确,但我不确定为什么代码不会引发错误。

print(X.shape)    # Prints (64, 4)
print(y.shape)    # Prints (64, 64, 8)

self.model.fit(X, y, batch_size=MINIBATCH_SIZE, verbose=0, shuffle=False)

那么为什么 Keras 接受一个数组数组呢? 它不应该只接受一个数组吗?

编辑:这就是我的模型的创建方式

model = Sequential()
model.add(tf.keras.layers.InputLayer(input_shape=(4,)))
model.add(Dense(64))
model.add(Dense(Env.ACTION_SPACE, activation='linear'))             # Env.ACTION_SPACE = 8
model.compile(loss="mse", optimizer='adam', metrics=['accuracy'])

它们主要是 mariz 计算,然后通过函数扩展或减小维度,但最后一层,你可以 falttern、softmax 或总结成你想要的形状。 您可以从训练批次或预测中看到,它返回一组输出,其中您看到批次号大于 1 或预测打印以查看输出结果,其中它们是您从 np.max 或 softwax 或附加网络搜索的答案堆栈的倍数。

我从这个例子中看到了你的言论

next_act = mainQ_outputs.evaluate(x=input_image, batch_size=16, max_queue_size=10, workers=16 )

或者你也可以这样做

predictions = model.predict(obs, batch_size=32)

样本输出:

### ( 1 ): Q-Networks
model = models.Sequential()         
    for layer in mainQ_outputs: 
     model.add(layer)
     model.add(tf.keras.layers.Flatten() )
     model.add(tf.keras.layers.Dense(6, activation=tf.nn.softmax))

### ( 2 ): predictions[0] - predictions[31]
action = np.argmax(predictions[0])  
action = actions_name[action]

...

目标运动预测(一)

目标运动预测(二)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM