Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is a "cell class" in Keras?

Or, more specific: what is the difference between ConvLSTM2D and ConvLSTM2DCell?

What is the difference between SimpleRNN and SimpleRNNCell?

Same question for GRU and GRUCell

Keras manuals are not very verbose here.

I can see from RTFS (reading those fine sources) that these classes are descendants of different base classes. Those, with names, ending with Cell, are subclasses of Layer.

In my task I need to classify video sequences. That is, my classifier's input is a sequence of video frames, and the output is a single label (one-hot encoded vector).

What class should I use?

like image 871
wl2776 Avatar asked May 30 '18 15:05

wl2776


1 Answers

The difference is the same for every cell layer combo:

  • Cell: The cell is the actual computation component, they take a single input, a past state and produce an output, new states. These actually perform the step function which contain the computation of a GRU cell for example.
  • RNN Layer: These layers wrap the corresponding cells to apply the same cell to multiple timesteps. So the cell is iterated over the input sequence and collect the output(s) based on extra options such as return_sequences.
like image 178
nuric Avatar answered Oct 05 '22 10:10

nuric