FC Layer, за которым следует LSTM - Tensorflow - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь работать с LSTM.Мои входные данные - 224 * 1, а мои метки - 70 * 1.

Перед подключением моих входов к LSTM я пытаюсь сопоставить входные данные со значениями меток.

Итак, япытаясь использовать слой FC в начале, оставьте его слою FC, чтобы узнать нелинейную шкалу метки ввода, а затем подключите выходной слой слоя FC к LSTM.

Я пробовал использовать tf.reshapeпри сглаживании и изменении формы, он не работает, имеет другой размер.

Может кто-нибудь помочь мне с этим?Это вообще возможно?Мой вывод слоя FC, который я получаю сейчас:

fc_layer:tf.Tensor 'Reshape:0' shape=(224, 70, 1) dtype=float32


Code
fc_layer = tf.contrib.layers.fully_connected(inputs =                     
                 batchX_placeholder, num_outputs = 70, activation_fn = 
                                                          tf.nn.relu)
fc_layer = tf.reshape(fc_layer,[-1, 70 , 1])



#######RNN Layer
init_state = tf.placeholder(dtype = tf.float32, shape = [num_layers, 2, 
batch_size, state_size],name = 'init_state')

state_per_layer_list = tf.unstack(init_state, axis=0)
rnn_tuple_state = tuple(
[tf.nn.rnn_cell.LSTMStateTuple(state_per_layer_list[idx][0], 
state_per_layer_list[idx][1])
    for idx in range(num_layers)]
)

1 Ответ

0 голосов
/ 02 февраля 2019

Я попробовал это, создав 2 слоя ФК вплотную.

Входные данные [1,224]

fc_layer1 = tf.contrib.layers.fully_connected(inputs, num_outputs = 224, activation_fn = tf.nn.relu)



fc_layer2 = tf.contrib.layers.fully_connected(inputs = fc_layer1, num_outputs = 70, activation_fn = tf.nn.relu)

Так что теперь у меня есть fc_layer2 с формой (1,70).Мои метки LSTM (70).Я думаю, что теперь я могу перейти к дизайну LSTM

...