【问题标题】:Add LSTM layer after Conv2D layers and add some other inputs在 Conv2D 层之后添加 LSTM 层并添加一些其他输入
【发布时间】:2019-06-07 06:56:48
【问题描述】:

我正在开发一款使用强化学习的赛车游戏。为了训练模型,我在实现神经网络时遇到了一个问题。我发现了一些使用 CNN 的例子。但似乎添加额外的 LSTM 层会提高模型效率。我找到了以下示例。

https://team.inria.fr/rits/files/2018/02/ICRA18_EndToEndDriving_CameraReady.pdf

The network I need to implement

问题是我不确定如何在这里实现 LSTM 层。如何将以下输入提供给 LSTM 层

  1. 处理后的图像输出
  2. 当前速度
  3. 最后一次操作

这是我目前正在使用的代码。我想在 Conv2D 之后添加 LSTM 层。

    self.__nb_actions = 28
    self.__gamma = 0.99

    #Define the model
    activation = 'relu'
    pic_input = Input(shape=(59,255,3))

    img_stack = Conv2D(16, (3, 3), name='convolution0', padding='same', activation=activation, trainable=train_conv_layers)(pic_input)
    img_stack = MaxPooling2D(pool_size=(2,2))(img_stack)
    img_stack = Conv2D(32, (3, 3), activation=activation, padding='same', name='convolution1', trainable=train_conv_layers)(img_stack)
    img_stack = MaxPooling2D(pool_size=(2, 2))(img_stack)
    img_stack = Conv2D(32, (3, 3), activation=activation, padding='same', name='convolution2', trainable=train_conv_layers)(img_stack)
    img_stack = MaxPooling2D(pool_size=(2, 2))(img_stack)
    img_stack = Flatten()(img_stack)
    img_stack = Dropout(0.2)(img_stack)

    img_stack = Dense(128, name='rl_dense', kernel_initializer=random_normal(stddev=0.01))(img_stack)

    img_stack=Dropout(0.2)(img_stack)
    output = Dense(self.__nb_actions, name='rl_output', kernel_initializer=random_normal(stddev=0.01))(img_stack)

    opt = Adam()
    self.__action_model = Model(inputs=[pic_input], outputs=output)

    self.__action_model.compile(optimizer=opt, loss='mean_squared_error')
    self.__action_model.summary()

谢谢

【问题讨论】:

    标签: keras deep-learning conv-neural-network reinforcement-learning keras-layer


    【解决方案1】:

    有多种方法可以做到这一点,首先,重塑conv 输出的输出并将其馈送到lstm 层。这是一个带有各种方法的解释示例Shaping data for LSTM, and feeding output of dense layers to LSTM

    【讨论】:

      猜你喜欢
      • 2019-11-06
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 2017-09-23
      • 2019-08-21
      • 2020-10-28
      • 2021-10-07
      • 2017-07-31
      相关资源
      最近更新 更多