6

Qualcuno è stato in grado di combinare livelli feedforward e layer ricorrenti in Tensorflow?Miscelazione degli strati di avanzamento e degli strati ricorrenti in Tensorflow?

Ad esempio: input-> conv-> GRU-> attuatori elettromagnetici> uscita

posso immaginare si può definire la propria cella con strati feedforward e nessuno stato che possono poi essere impilati utilizzando la funzione MultiRNNCell, qualcosa di simile:

cella = tf.nn.rnn_cell.MultiRNNCell ([conv_cell, GRU_cell, linear_cell])

Questo renderebbe la vita molto più facile ...

risposta

0

non puoi semplicemente fare il seguente:

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

ecc

0

This tutoria l dà un esempio di come utilizzare strati convoluzionali insieme a quelle ricorrenti. Ad esempio, avente strati ultimi convoluzione simili:

... 
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") 

e avendo definito cellule RNN:

_, 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") 

È possibile concatenare due uscite e usarlo come input per lo strato successivo:

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

Oppure è possibile utilizzare l'output del livello CNN come input per la cella RNN:

_, shape_state = tf.nn.dynamic_rnn(cell=shape_cell, 
    inputs=l_flatten, dtype=tf.float32, scope="shape_rnn")