Arrays TensorFlow-无法使用get_shape命令获取矩阵的形状

Arrays TensorFlow-无法使用get_shape命令获取矩阵的形状,arrays,numpy,matrix,tensorflow,shape,Arrays,Numpy,Matrix,Tensorflow,Shape,当我这样做的时候,我似乎无法得到张量的形状 get_shape().as_list() 以下是我编写的代码: matrix1 = tf.placeholder(tf.int32) matrix2 = tf.placeholder(tf.int32) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) a = sess.run(matrix1, {matrix1: [[1,2,3],[4

当我这样做的时候,我似乎无法得到张量的形状

get_shape().as_list()
以下是我编写的代码:

matrix1 = tf.placeholder(tf.int32) 
matrix2 = tf.placeholder(tf.int32)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    a = sess.run(matrix1, {matrix1: [[1,2,3],[4,5,6],[7,8,9]]})
    b = sess.run(matrix2, {matrix2: [[10,11,12],[13,14,15], [16,17,18]]})
    print(a.get_shape().as_list()) #ERROR
我得到以下错误:

AttributeError: 'numpy.ndarray' object has no attribute 'get_shape'
我想知道矩阵的形状,这样我就可以在任意矩阵中循环遍历它的行和列。

只需在注释中总结讨论内容,只需几点注释

matrix1和a都是多维数组,但有一个区别:

matrix1是的实例,它支持两种访问形状的方法:matrix1.shape属性和matrix1.get_形状方法

tf.Tensor求值的结果a是一个numpy,它只有一个.shape属性


从历史上看,tf.Tensor只有get_shape方法,后来添加shape使其与numpy类似。还有一点需要注意:在tensorflow中,TensorShape可以是动态的,就像您的示例中一样,在这种情况下,get_shape和shape都不会返回数字。在这种情况下,可以在运行时使用函数来访问它。这是一个可能有用的时间。

不是专家,但如果它是一个numpy.ndarray,该方法不是被调用了吗?a是一个numpy.ndarray,所以应该使用a.shape