当前位置:   article > 正文

tensorflow学习——张量的相关操作_tensorflow1.15 将一维tentor 变成两维

tensorflow1.15 将一维tentor 变成两维

张量相关操作

多维张量在物理上以一维的方式连续存储,通过定义维度和形状,在逻辑上把它理解为多维张量。(对于多维数组也同样适用)

维度变换

改变张量形状

使用tf.reshape改变张量的形状,语法格式:

tf.reshape(tensor,shape)
  • 1

例,将一维张量转换成三维张量:

a = tf.range(24)
print(a)
print(tf.reshape(a, [2, 3, 4]))
  • 1
  • 2
  • 3

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Ba3SlPM-1591091963980)(./img/13.png)]

多维张量的轴

多维张量的维度表示多维张量的轴(axis)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JQ0PeP5e-1591091963984)(./img/14.png)]

张量的轴带有索引值,从维度最高到最低,使用数字0作为轴索引的开始,(可以理解为张量最外层到最内层的顺序)。也可以使用负数作为倒数的索引,-1表示索引值最大的轴,这一点与Python的列表一致。

增加维度

使用tf.expand_dims(input, axis)增加张量维度,语法格式:

tf.expand_dims(input, axis)
  • 1

示例,现有一个shape为(2,2)的张量,为它在axis=0方向上添加一个维度:

a = tf.constant([[1,2],[3,4]])
print(tf.shape(a))
a = tf.expand_dims(a, axis=0)
print(a)
  • 1
  • 2
  • 3
  • 4

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7YeG5fWV-1591091963985)(./img/15.png)]

需要注意的是,tf.expand_dims()必须要明确指定axis的值,指定顶哪个轴就在原张量基础上增加一个指定轴。如果上述代码指定axis=1,那么a的shape就会是(2, 1, 2)。

删除维度

删除维度用tf.squeeze()函数,该函数语法格式:

tf.squeeze(input,
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/272343
    推荐阅读
    相关标签
      

    闽ICP备14008679号