我正在尝试使用LSTM。我的输入数据是224*1,我的标签是70*1。
在将我的输入连接到LSTM之前,我试图将输入数据与标签值匹配。
因此,我尝试在开始时使用全连接层(FC层),让FC层学习输入与标签之间的非线性尺度,然后将FC层的输出连接回LSTM。
我尝试使用tf.reshape通过扁平化和重塑来处理,但由于尺寸不同,这没有奏效。
有谁可以帮我解决这个问题吗?这是可能的吗?我现在得到的FC层的输出是:
fc_layer:tf.Tensor 'Reshape:0' shape=(224, 70, 1) dtype=float32Codefc_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 Layerinit_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)])
回答:
我通过创建两个连续的FC层来尝试这个方法。
输入是[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)
所以现在我有了形状为(1,70)的fc_layer2。我的LSTM标签是(70)。我想我现在可以继续设计LSTM了