【发布时间】:2018-03-30 15:12:04
【问题描述】:
我有一个 64x60x4 的输入形状,用于强化学习代理玩马里奥。 问题是,看起来很“如果屏幕看起来像这样,那就那样做”,这对这个问题不是很好。
我想在 Keras (TensorFlow) 中的 3 个 conv2D 层之后添加一个 LSTM 层,但它抱怨它需要 5 个维度,但收到了 4 个。当我玩这些层时,它变成了 6 和 5。
那么,如何将 LSTM 层放入以下模型,其中 input_shape 为 64x60x4(4 帧是最后 4 帧,用于帮助学习物体的加速度和方向):
image_input = Input(shape=input_shape)
out = Conv2D(filters=32, kernel_size=8, strides=(4, 4), padding=padding, activation='relu')(image_input)
out = Conv2D(filters=64, kernel_size=4, strides=(2, 2), padding=padding, activation='relu')(out)
out = Conv2D(filters=64, kernel_size=4, strides=(1, 1), padding=padding, activation='relu')(out)
out = MaxPooling2D(pool_size=(2, 2))(out)
out = Flatten()(out)
out = Dense(256, activation='relu')(out)
### LSTM should go here ###
q_value = Dense(num_actions, activation='linear')(out)
欢迎任何其他建议/指针。
【问题讨论】:
-
这可能对您有帮助吗? stackoverflow.com/questions/47470385/…
标签: python tensorflow keras