【问题标题】:In a Keras custom RNN cell, what are the dimensions of the inputs and outputs?在 Keras 自定义 RNN 单元中,输入和输出的维度是多少?
【发布时间】:2019-08-30 02:55:30
【问题描述】:

自定义单元格采用 (input,state) 并生成 (output,state)。我相信 input 是一个张量,而 state 是一个张量列表。从与错误消息的斗争来看,张量似乎带有一个额外的维度,但我不确定在 RNN 的上下文中会是什么。另一个维度是干什么用的?预期的输出大小/形状是多少?

顺便说一下,我正在使用 Tensorflow 后端。

【问题讨论】:

    标签: keras recurrent-neural-network tf.keras


    【解决方案1】:

    单元格输入是形状为 (batch_size, timesteps, input_size) 或 (timesteps, batch_size, input_size) 的 3d 张量,具体取决于您展开输入的方式(如果您选择 time_major 属性为真或不为真)。状态是 n 个张量的列表,其中每个张量的形状为 (batch_size, hidden_​​state),其中 n 是 RNN 层(或堆叠的 RNN 单元)的数量。

    【讨论】:

    • 您是说所有时间步长同时呈现给单元格?这似乎与细胞的顺序反馈性质不一致,即:(out,state) = func(in,state)。
    • 我将尝试解释整个 rnn 以及它在 keras 中的工作原理。假设您有一个形状的输入(batch_size、timesteps、input_size)。您将首先创建一个 RNN 层。您可以将其视为单元格的包装器,它将在时间维度上展开输入。每次,它将使用当前输入(1 个时间戳)和状态调用单元格。之后单元格的输出(输出、状态)将作为输入传递给下一个单元格并存储在列表中。处理完所有时间戳后,将返回列表。
    • 对,所以在单元格函数输入时,一次只传递一个时间。所以进入单元格的形状是 (batch_size, input_size)?
    • 是的,单元格内的输入应该是那个形状。
    猜你喜欢
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 2019-11-21
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多