张量-形状变换相关函数

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))

张量-形状变换相关函数_第1张图片

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)))

你可能感兴趣的:(常见知识点,人工智能,深度学习,tensorflow,python)