tf.shape()
tf.shape()是获取张量的大小的,其中的参数可以是tensor,list,array,返回一个list。
import tensorflow as tf
import numpy as np
a_array=np.array([[1,2,3],[4,5,6]])
b_list=[[1,2,3],[3,4,5]]
c_tensor=tf.constant([[1,2,3],[4,5,6]])
with tf.Session() as sess:
print(sess.run(tf.shape(a_array)))
print(sess.run(tf.shape(b_list)))
print(sess.run(tf.shape(c_tensor)))
输出:
x.get_shape()
x.get_shape()中的x的数据类型只能是tensor,且返回的是一个元组。
import tensorflow as tf
import numpy as np
a_array=np.array([[1,2,3],[4,5,6]])
b_list=[[1,2,3],[3,4,5]]
c_tensor=tf.constant([[1,2,3],[4,5,6]])
print(c_tensor.get_shape())
print(c_tensor.get_shape().as_list()) #需要通过as_list()的操作转换成list
print(a_array.get_shape()) #会报错,只有tensor有这个属性函数
with tf.Session() as sess:
print(sess.run(tf.shape(a_array)))
print(sess.run(tf.shape(b_list)))
print(sess.run(tf.shape(c_tensor)))
输出:
下面强调一些注意点:
第一点:tensor.get_shape()返回的是元组,不能放到sess.run()里面,这个里面只能放operation和tensor;
第二点:tf.shape()返回的是一个tensor。要想知道是多少,必须通过sess.run()
转载自:https://blog.csdn.net/m0_37393514/article/details/82226754