【tensorflow】tf.reshape函数说明:重塑张量

转载

[471]tf.reshape函数说明_周小董-CSDN博客 https://blog.csdn.net/xc_zhou/article/details/85342542

函数原型:

tf.reshape(
    tensor,
    shape,
    name=None
)

功能:改变张量(tensor)的形状。

tensor形参传入一个tensor。shape传入一个向量,代表新tensor的维度数和每个维度的长度。如果传入[3,4,5],就会返回一个内含各分量数值和原传入张量 一模一样的3 *4 *5尺寸的张量。

如果shape传入的向量某一个分量设置为-1,比如[-1,4,5],那么这个分量代表的维度尺寸会被自动计算出来。

用法一,一个尺寸为1 * 9的张量转化为3 * 3的张量

# tensor 't' is [1, 2, 3, 4, 5, 6, 7, 8, 9]
# tensor 't' has shape [9]
reshape(t, [3, 3]) ==> [[1, 2, 3],
                        [4, 5, 6],
                        [7, 8, 9]]

用法二,一个尺寸为3 * 2 * 3的张量,转换为第二个维度尺寸为9的张量,即n * 9的张量:

reshape(t, [-1, 9]) ==> [[1, 1, 1, 2, 2, 2, 3, 3, 3],
                         [4, 4, 4, 5, 5, 5, 6, 6, 6]]

显然,n被计算为2。

用法三,仅含有单个元素的张量转化为标量:
t为张量[7]

reshape(t, []) ==> 7

第二篇转载

下文为CSDN博主「csdn0006」的原创文章,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/csdn0006/article/details/106238909

用法
tf.reshape函数用于对输入tensor进行维度调整,但是这种调整方式并不会修改内部元素的数量以及元素之间的顺序,换句话说,reshape函数不能实现类似于矩阵转置的操作。
比如,对于矩阵[[1,2,3],[4,5,6]],如果使用reshape,将维度变为[3,2], 其输出结果为:[[1,2],[3,4],[5,6]], 元素之间的顺序并没有改变:1之后还是2,
如果是矩阵转置操作,1之后应该为4。

tf.reshape不会更改张量中元素的顺序或总数,因此可以重用基础数据缓冲区。这使得它快速运行,而与要运行的张量有多大无关。

如果需要修改张量的维度来实现对元素重新排序,需要使用tf.transpose
在这里插入图片描述
总结
关于tf.reshape函数我们需要知道的是:

1.函数用于张量维度调整,但是不会修改内部元素的数量以及相对顺序
2.shape中-1表示这个维度的大小,程序运行时会自动计算填充(因为变换前后元素数量不变,我们可以根据其他维度的大小,最终确定-1这个位置应该表示的数字)
3.如果需要通过修改内部元素的存储顺序以实现维度调整,需要使用tf.transpose函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值