Keras 中的“细胞类”是啥?

Posted

技术标签:

【中文标题】Keras 中的“细胞类”是啥?【英文标题】:What is a "cell class" in Keras?Keras 中的“细胞类”是什么? 【发布时间】:2018-11-09 12:13:36 【问题描述】:

或者,更具体地说:ConvLSTM2DConvLSTM2DCell 之间有什么区别?

SimpleRNN and SimpleRNNCell 有什么区别?

GRU and GRUCell 的同样问题

Keras 手册在这里不是很冗长。

我可以从 RTFS(阅读那些 fine 来源)看到这些类是不同基类的后代。那些名字以Cell结尾的,是Layer的子类。

在我的任务中,我需要对视频序列进行分类。也就是说,我的分类器的输入是视频帧序列,输出是单个标签(one-hot 编码向量)。

我应该使用什么类?

【问题讨论】:

【参考方案1】:

每个单元层组合的区别是相同的:

单元格:单元格是实际的计算组件,它们接受单个输入、过去的状态并产生输出、新状态。这些实际上执行 step 函数,其中包含例如 GRU 单元的计算。 RNN 层:这些层包裹了相应的单元格以将相同单元格应用于多个时间步。因此,单元格在输入序列上进行迭代,并根据 return_sequences 等额外选项收集输出。

【讨论】:

在我的任务中,我需要将视频序列分类为几个类别之一。也就是说,我的输入是一个视频帧序列,输出是一个标签,例如可以是一个单热向量(我正在设置我的任务)。我应该使用Layer 的子类,对吧? 是的,如果你已经有序列,你几乎从不直接使用单元格。因为即使单元格是 Layer 的子类,它们也有稍微不同的调用签名来考虑状态等。 然后,看起来,不是是,而是不是。我应该使用ConvLSTM2D,而不是ConvLSTM2DCell 是的,使用实际为您迭代时间步长的包装层。

以上是关于Keras 中的“细胞类”是啥?的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow 和 Keras 中的符号张量是啥?

keras.models.Model.fit 中的“时代”是啥?

Keras 中的 h5 模型是啥? [关闭]

Keras中的顺序模型是啥意思

model.predict(keras)输出中的类的顺序是啥?

当训练数据是图像时,Keras model.fit() 中的“批次”是啥