在Keras自定义RNN单元中,输入和输出的尺寸是多少?

在Keras自定义RNN单元中,输入和输出的尺寸是多少?,keras,recurrent-neural-network,tf.keras,Keras,Recurrent Neural Network,Tf.keras,自定义单元格接受(输入、状态)并生成(输出、状态)。我相信输入是张量,状态是张量列表。从错误信息的斗争来看,张量似乎带有一个额外的维度,但我不确定在RNN的上下文中会是什么。另一个维度是什么?预期的输出大小/形状是什么 顺便说一句,我使用的是Tensorflow后端。单元格输入是一个形状的三维张量(批大小、时间步长、输入大小)或(时间步长、批大小、输入大小),具体取决于您展开输入的方式(如果您选择“时间主属性”是否为真)。状态是n个张量的列表,其中每个张量具有形状(批次大小、隐藏状态),其中n是

自定义单元格接受(输入、状态)并生成(输出、状态)。我相信输入是张量,状态是张量列表。从错误信息的斗争来看,张量似乎带有一个额外的维度,但我不确定在RNN的上下文中会是什么。另一个维度是什么?预期的输出大小/形状是什么


顺便说一句,我使用的是Tensorflow后端。

单元格输入是一个形状的三维张量(批大小、时间步长、输入大小)或(时间步长、批大小、输入大小),具体取决于您展开输入的方式(如果您选择“时间主属性”是否为真)。状态是n个张量的列表,其中每个张量具有形状(批次大小、隐藏状态),其中n是RNN层(或堆叠的RNN单元)的数量

单元格输入是一个三维形状张量(批次大小、时间步长、输入大小)或(时间步长、批次大小、输入大小),具体取决于您展开输入的方式(如果选择“时间”主属性为真或否)。状态是n个张量的列表,其中每个张量具有形状(批次大小、隐藏状态),其中n是RNN层(或堆叠的RNN单元)的数量

您是说所有的时间步都同时呈现给单元格?这似乎与单元的顺序反馈性质不一致,即:(out,state)=func(in,state)。我将尝试解释整个rnn及其在keras中的工作方式。假设您有一个形状输入(批大小、时间步长、输入大小)。您将首先创建一个RNN层。您可以将其视为单元格的包装器,它将在时间维度上展开输入。每次,它都会调用带有当前输入(1个时间戳)和状态的单元格。之后,单元格的输出(输出、状态)将作为输入传递给下一个单元格并存储在列表中。处理完所有时间戳后,列表将返回。对,因此在单元格函数输入中,一次只传递一次。因此,单元格中的形状应该是(批处理大小,输入大小)?是的,单元格中的输入应该具有该形状。您是说所有时间步都同时呈现给单元格?这似乎与单元的顺序反馈性质不一致,即:(out,state)=func(in,state)。我将尝试解释整个rnn及其在keras中的工作方式。假设您有一个形状输入(批大小、时间步长、输入大小)。您将首先创建一个RNN层。您可以将其视为单元格的包装器,它将在时间维度上展开输入。每次,它都会调用带有当前输入(1个时间戳)和状态的单元格。之后,单元格的输出(输出、状态)将作为输入传递给下一个单元格并存储在列表中。处理完所有时间戳后,列表将返回。对,因此在单元格函数输入中,一次只传递一次。所以单元格中的形状应该是(批处理大小,输入大小)?是的,单元格中的输入应该具有该形状。