ConcatOp:输入的尺寸应匹配 [英] ConcatOp : Dimensions of inputs should match

查看:650
本文介绍了ConcatOp:输入的尺寸应匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用张量流和python开发深度学习模型:

I'm developing a deep learning model with tensor flow and python:

  • 首先,使用CNN图层获取要素.
  • 第二,重塑功能图,我想使用LSTM层.

但是,尺寸不匹配的错误...

However, a error with not-matching dimension...

ConcatOp:输入的尺寸应匹配:shape[0] = [71,48]shape[1] = [1200,24]

ConcatOp : Dimensions of inputs should match: shape[0] = [71,48] vs. 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...

推荐答案

当您输入rnn单元格时,输入张量和状态张量的批处理大小应相同.

When you input to the rnn cell, the batch size of input tensor and state tensor should be same.

在错误消息中,它表示h3_rnn_input[:,time_step,:]的形状为[71,48],而state的形状为[1200,24]

In the error message, it says h3_rnn_input[:,time_step,:] has shape of [71,48] while state has shape of [1200,24]

您需要做的是使第一个尺寸(batch_size)相同.

What you need to do is make the first dimensions(batch_size) to be same.

如果不需要数字71,请检查卷积部分.步幅/填充可能很重要.

If the number 71 is not intended, check the Convolution part. Stride/Padding Could be matter.

这篇关于ConcatOp:输入的尺寸应匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆