6

Kann jemand Feedforward-Schichten und wiederkehrende Schichten in Tensorflow mischen?Mischen Feed-Forward-Schichten und wiederkehrende Schichten in Tensorflow?

Zum Beispiel: Input-> conv-> GRU-> linear-> Ausgabe

I vorstellen kann man seine eigene Zelle, die mit Vorwärtskopplungsschichten und ohne Zustand, der dann die Funktion MultiRNNCell Verwendung gestapelt werden kann, definieren, so etwas wie:

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

Dies würde das Leben viel einfacher ...

Antwort

0

kannst du nicht einfach tun Folgendes:

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

usw.

0

This tutoria l gibt ein Beispiel dafür, wie Faltungsschichten zusammen mit rezidivierend denjenigen zu verwenden. Zum Beispiel, mit letzten Faltungs Schichten wie folgt aus:

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

und mit definierten RNN Zelle:

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

Sie beide Ausgänge verketten kann, und sie als die Eingabe für die nächste Schicht verwendet werden:

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

Oder Sie können einfach den Ausgang der CNN-Schicht als Eingang für die RNN-Zelle verwenden:

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