2017-05-31 84 views
0

在下面的代码中,我有2个最大池和2个卷积层。在pooling_out2之后,我想添加完全连接的图层。 如果我提到重塑张量流代码中完全连通层的输入?

`W-input=tf.reshape(pooling_out2, [-1,FLAGS.image_size*FLAGS.image_size*32])` 

它将image.Let的回升初值说我开始与图像尺寸28.我应该给什么命令,它重塑pooling_out2的尺寸?

`batch_size = 4 
    input =  tf.Variable(tf.random_normal([batch_size,FLAGS.image_size,FLAGS.image_size,FLAGS.input_channel])) 
    filter = weight_variable([FLAGS.image_size,FLAGS.image_size,FLAGS.input_channel,FLAGS.filter_channel]) 
    filter_2= 
weight_variable([FLAGS.filter_size,FLAGS.filter_size,FLAGS.filter_channel,32]) 
    def conv2d(inputs,filters): 
     return tf.nn.conv2d(inputs,filters,strides=[1,2,2,1],padding='SAME') 
    def max_pool(conv_out): 
     return tf.nn.max_pool(conv_out,ksize=[1,FLAGS.filter_size,FLAGS.filter_size,1],strides=[1,2,2,1],padding='SAME') 
    conv_out1 = conv2d(input,filter) 
    pooling_out1 = max_pool(conv_out1) 
    conv_out2 = conv2d(pooling_out1,filter_2) 
    pooling_out2 = max_pool(conv_out2)` 

回答

0

可以得到tensorflow张量的与所述命令tf.shape

然后,它应该足以后的第一个相乘的尺寸形状(作为tensorflow张量),是这样的:

last_shape = tf.shape(pooling_out2) 
n_features = tf.reduce_prod(last_shape[1:]) 
new_shape = [last_shape[0], n_features] 
W_input = tf.reshape(pooling_out2, new_shape)