【问题标题】: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 编码向量)。

我应该使用什么类?

【问题讨论】:

    标签: python tensorflow keras lstm recurrent-neural-network


    【解决方案1】:

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

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

    【讨论】:

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