如何乘以张量的维度?

R.a*_*ali 5 python tensorflow

在下面的代码中,当我打印它时,conv_out.get_shape()它会给我输出(1,14,14,1)。我想将第二个第三个和第四个维度相乘(14*14*1)。我怎样才能做到这一点?

input = tf.Variable(tf.random_normal([1,28,28,1]))
filter = tf.Variable(tf.random_normal([5,5,1,1]))

def conv2d(input,filter):
    return tf.nn.conv2d(input,filter,strides=[1,2,2,1],padding='SAME')

conv_out = conv2d(input,filter)
sess = tf.InteractiveSession()
sess.run(tf.initialize_all_variables())

print conv_out.get_shape()
print conv_out.get_shape().as_list()[2]
Run Code Online (Sandbox Code Playgroud)

Pie*_*lla 4

就像是

import numpy as np
np.asarray(conv_out.get_shape().as_list()[1:]).prod()
Run Code Online (Sandbox Code Playgroud)

应该做这项工作。

或者,如果您希望将其内部添加到张量流图中,例如:

tf_shape = tf.shape(conv_out)
tf_shape_prod = tf.reduce_prod(tf_shape[1:])
Run Code Online (Sandbox Code Playgroud)