Keras 中的“细胞类”是啥?
Posted
技术标签:
【中文标题】Keras 中的“细胞类”是啥?【英文标题】:What is a "cell class" in Keras?Keras 中的“细胞类”是什么? 【发布时间】:2018-11-09 12:13:36 【问题描述】:或者,更具体地说:ConvLSTM2D
和 ConvLSTM2DCell
之间有什么区别?
SimpleRNN
and SimpleRNNCell
有什么区别?
GRU and GRUCell 的同样问题
Keras 手册在这里不是很冗长。
我可以从 RTFS(阅读那些 fine 来源)看到这些类是不同基类的后代。那些名字以Cell
结尾的,是Layer
的子类。
在我的任务中,我需要对视频序列进行分类。也就是说,我的分类器的输入是视频帧序列,输出是单个标签(one-hot 编码向量)。
我应该使用什么类?
【问题讨论】:
【参考方案1】:每个单元层组合的区别是相同的:
单元格:单元格是实际的计算组件,它们接受单个输入、过去的状态并产生输出、新状态。这些实际上执行 step 函数,其中包含例如 GRU 单元的计算。 RNN 层:这些层包裹了相应的单元格以将相同单元格应用于多个时间步。因此,单元格在输入序列上进行迭代,并根据return_sequences
等额外选项收集输出。
【讨论】:
在我的任务中,我需要将视频序列分类为几个类别之一。也就是说,我的输入是一个视频帧序列,输出是一个标签,例如可以是一个单热向量(我正在设置我的任务)。我应该使用Layer
的子类,对吧?
是的,如果你已经有序列,你几乎从不直接使用单元格。因为即使单元格是 Layer 的子类,它们也有稍微不同的调用签名来考虑状态等。
然后,看起来,不是是,而是不是。我应该使用ConvLSTM2D
,而不是ConvLSTM2DCell
。
是的,使用实际为您迭代时间步长的包装层。以上是关于Keras 中的“细胞类”是啥?的主要内容,如果未能解决你的问题,请参考以下文章
keras.models.Model.fit 中的“时代”是啥?