1、区别:
相同:都是用来获取数组的大小
不同:tf.shape(a)的对象a为矩阵、列表或张量,结果为张量(tensor)
a.get_shape()的对象a为张量(tensor),结果为元组,可以用a.get_shape().as_list()转为列表
2、用法:
1)tf.shape(a)
通过下面的例子,看两者在使用上的区别:
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)))
结果:
如果在sess.run(