Какова связь между размером пакета, длиной последовательности и скрытым_размером?

При чтении документа API dynamic_rnn у меня возник следующий вопрос:

Существуют ли ограничения на взаимосвязь между размером пакета, длиной последовательности и скрытым_размером (ячейки)?

Я думаю, что:

длина последовательности ‹= (ячейка)hidden_size или,

размер партии * длина последовательности ‹= (ячейка)hidden_size

Я прав? Я прочитал много веб-страниц, но не нашел ответа.

Спасибо всем.

https://www.tensorflow.org/api_docs/python/tf/nn/dynamic_rnn

Пример:

# create a BasicRNNCell
rnn_cell = tf.nn.rnn_cell.BasicRNNCell(hidden_size)

# 'outputs' is a tensor of shape [batch_size, max_time, cell_state_size]

# defining initial state
initial_state = rnn_cell.zero_state(batch_size, dtype=tf.float32)

# 'state' is a tensor of shape [batch_size, cell_state_size]
outputs, state = tf.nn.dynamic_rnn(rnn_cell, input_data,
                                   initial_state=initial_state,
                                   dtype=tf.float32)
# create 2 LSTMCells
rnn_layers = [tf.nn.rnn_cell.LSTMCell(size) for size in [128, 256]]

# create a RNN cell composed sequentially of a number of RNNCells
multi_rnn_cell = tf.nn.rnn_cell.MultiRNNCell(rnn_layers)

# 'outputs' is a tensor of shape [batch_size, max_time, 256]
# 'state' is a N-tuple where N is the number of LSTMCells containing a
# tf.contrib.rnn.LSTMStateTuple for each cell
outputs, state = tf.nn.dynamic_rnn(cell=multi_rnn_cell,
                                   inputs=data,
                                   dtype=tf.float32)

person Shui    schedule 11.12.2017    source источник


Ответы (1)


В отношении API нет никакой связи. Зафиксируйте любые два из этих параметров, и оставшиеся могут по-прежнему быть любыми неотрицательными целыми числами (или, в случае sequence_length, любым вектором неотрицательных целых чисел длиной batch_size).

Результирующая модель может очень легко переобучиться, если hidden_size огромна, а обучающих данных очень мало, но она все равно будет работать. Обратите внимание, что обучающие данные обычно представлены в мини-пакетах, поэтому количество обучающих данных не будет суммой длин последовательностей, переданных в dynamic_rnn.

Существуют также аппаратные ограничения, так как batch_size и максимальная длина последовательности влияют на использование памяти.

person Allen Lavoie    schedule 11.12.2017