6

Кто-нибудь мог смешивать слои с обратной связью и повторяющиеся слои в Tensorflow?Смешивание прямых слоев и повторяющихся слоев в Tensorflow?

Например: вход-> conv-> GRU-> линейно> Выход

Я могу себе представить, можно определить свою собственную ячейку с Feedforward слоями и не в том состоянии, которые затем могут быть сложены с помощью функции MultiRNNCell, что-то вроде:

клеток = tf.nn.rnn_cell.MultiRNNCell ([conv_cell, GRU_cell, linear_cell])

Это сделало бы жизнь намного проще ...

ответ

0

вы не можете просто сделать следующее:

rnnouts, _ = rnn(grucell, inputs) 
linearout = [tf.matmul(rnnout, weights) + bias for rnnout in rnnouts] 

т.д.

0

This tutoria л дает пример того, как использовать сверточные слои вместе с повторяющимися из них. Например, имея последние сверточные слои, как это:

... 
l_conv4_a = conv_pre(l_pool3, 16, (5, 5), scope="l_conv4_a") 
l_pool4 = pool(l_conv3_a, scope="l_pool4") 
l_flatten = flatten(l_pool4, scope="flatten") 

и имеющий определенную РНН клетку:

_, shape_state = tf.nn.dynamic_rnn(cell=shape_cell, 
    inputs=tf.expand_dims(batch_norm(x_shape_pl), 2), dtype=tf.float32, scope="shape_rnn") 

Вы можете конкатенировать оба выхода и использовать его в качестве входного сигнала к следующему слою:

features = tf.concat(concat_dim=1, values=[x_margin_pl, shape_state, x_texture_pl, l_flatten], name="features") 

Или вы можете просто использовать выход слоя CNN в качестве входа в ячейку RNN:

_, shape_state = tf.nn.dynamic_rnn(cell=shape_cell, 
    inputs=l_flatten, dtype=tf.float32, scope="shape_rnn") 
Смежные вопросы