2016-12-11 5 views
1

と一致している必要があり、私はテンソルの流れとPythonとの深い学習モデルを開発しています:ConcatOp:入力の寸法

  • まず、CNN層を使用して、機能を得ます。
  • 第2に、フィーチャマップを再構成して、私はLSTMレイヤを使用したいと思います。しかし

、ないマッチング寸法の誤差...

ConcatOp:入力の寸法は一致している必要があります:shape[0] = [71,48]shape[1] = [1200,24]

W_conv1 = weight_variable([1,conv_size,1,12]) 
b_conv1 = bias_variable([12]) 

h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1)+ b_conv1) 
h_pool1 = max_pool_1xn(h_conv1) 

W_conv2 = weight_variable([1,conv_size,12,24]) 
b_conv2 = bias_variable([24]) 

h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2) 
h_pool2 = max_pool_1xn(h_conv2) 

W_conv3 = weight_variable([1,conv_size,24,48]) 
b_conv3 = bias_variable([48]) 

h_conv3 = tf.nn.relu(conv2d(h_pool2, W_conv3) + b_conv3) 
h_pool3 = max_pool_1xn(h_conv3) 


print(h_pool3.get_shape()) 
h3_rnn_input = tf.reshape(h_pool3, [-1,x_size/8,48]) 

num_layers = 1 
lstm_size = 24 
num_steps = 4 

lstm_cell = tf.nn.rnn_cell.LSTMCell(lstm_size, initializer = tf.contrib.layers.xavier_initializer(uniform = False)) 
cell = tf.nn.rnn_cell.MultiRNNCell([lstm_cell]*num_layers) 
init_state = cell.zero_state(batch_size,tf.float32) 


cell_outputs = [] 
state = init_state 
with tf.variable_scope("RNN") as scope: 
for time_step in range(num_steps): 
    if time_step > 0: scope.reuse_variables() 
    cell_output, state = cell(h3_rnn_input[:,time_step,:],state) ***** Error In here... 

答えて

2

ときRNN細胞へのご入力、入力テンソルと状態テンソルのバッチサイズは同じでなければなりません。エラーメッセージで

、それは最初の次元(BATCH_SIZE)が同じになるように作るあるstateは、あなたがする必要がどのような[1200,24]

の形状を有しているh3_rnn_input[:,time_step,:][71,48]の形状をしていると言います。

番号71が意図されていない場合は、畳み込み部分を確認してください。ストライド/パディング問題である可能性があります。