tf.shape(input,name = None)它有两个参数,input和name,input可以是一个张量,也可以是一个数组和list。该函数返回的是input的形状(shape),而且一个类型为int32的张量。
示例代码如下:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
array = [[[1,1,1],[2,2,2]],
[[3,3,3],[4,4,4]],
[[5,5,5],[6,6,6]]]
with tf.Session() as sess:
print(sess.run(tf.shape(array)))
tf.size(input,name = None)该函数返回的是输入数据的元素个数。
示例代码如下:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
array = [[[1,1,1],[2,2,2]],
[[3,3,3],[4,4,4]],
[[5,5,5],[6,6,6]]]
with tf.Session() as sess:
print(sess.run(tf.size(array)))
tf.rank(input,name = None)该函数返回输入参数input的维度,也就是阶(rank)。需要注意的是,这里的rank不同于矩阵的rank,主要看有几层中括号。
示例代码如下:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
array = [[[1,1,1],[2,2,2]],
[[3,3,3],[4,4,4]],
[[5,5,5],[6,6,6]]]
with tf.Session() as sess:
print(sess.run(tf.rank(array)))
tf.reshape(input,shape,name = None),该函数用于将原有输入数据input的shape按照指定形状进行变化,生成一个新的张量。
示例代码如下:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
array = [1,1,1,2,2,2,3,3,3,4,4,4]
with tf.Session() as sess:
print(sess.run(tf.reshape(array,[3,4])))
这里有一点需要注意,如果第二个参数shape有元素[-1],则表示在该维度下自动计算。
示例代码如下:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
array = [1,1,1,2,2,2,3,3,3,4,4,4]
with tf.Session() as sess:
print(sess.run(tf.reshape(array,[2,-1])))
tf.expand_dims(input,dim,name = None),该函数用于给定的input,在指定的维度(dim)增加一个维度1。这里需要注意dim的值,如果为0,代表的是第一维度。如果为负数,则是最后的那个维度。在使用tf.expand_dims函数时,指定的维度位置不能超出实际的维度数。
示例代码如下:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
array = [[1,1,1,2,2,2],[3,3,3,4,4,4]]
a = tf.expand_dims(array,0)
b = tf.expand_dims(array,1)
c = tf.expand_dims(array,2)
d = tf.expand_dims(array,-1)
a2 = tf.shape(a)
b2 = tf.shape(b)
c2 = tf.shape(c)
d2 = tf.shape(d)
with tf.Session() as sess:
print("原始:", sess.run(tf.shape(array)))
print("------------------------------")
print(sess.run(a))
print(sess.run(a2))
print("------------------------------")
print(sess.run(b))
print(sess.run(b2))
print("------------------------------")
print(sess.run(c))
print(sess.run(c2))
print("------------------------------")
print(sess.run(d))
print(sess.run(d2))
tf.squeeze(input,dim,name = None),该函数用于将dim指定的input中维度为1的维度去掉。需要注意的是,dim所指定的维度必须为1,如果不为1则会报错。
示例代码如下:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
array = [[[1,1,1,2,2,2],[3,3,3,4,4,4]]]
array2 = tf.squeeze(array,0)
with tf.Session() as sess:
print(sess.run(tf.shape(array)))
print(sess.run(tf.shape(array2)))