前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tf.reshape函数用法&理解

tf.reshape函数用法&理解

作者头像
公众号-不为谁写的歌
发布2022-04-14 08:28:41
1.1K0
发布2022-04-14 08:28:41
举报
文章被收录于专栏:桃花源记桃花源记

函数原型

函数接口:

代码语言:javascript
复制
tf.reshape(
    tensor, shape, name=None
)

参数

tensor

Tensor张量

shape

Tensor张量,用于定义输出张量的shape,组成元素类型为 int32或int64.

name

可选参数,用于定义操作名称.

返回

A Tensor. 输出张量和输入张量的元素类型相同。

用法

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(a, shape) -> tf.reshape(a, [-1]) -> tf.reshape(a, shape) 现将输入tensor,flatten铺平,然后再进行维度调整(元素的顺序没有变化

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

如果需要修改张量的维度来实现对元素重新排序,需要使用tf.transpose

image-20200517190147962
image-20200517190147962

总结

关于tf.reshape函数我们需要知道的是:

  1. 函数用于张量维度调整,但是不会修改内部元素的数量以及相对顺序
  2. shape中-1表示这个维度的大小,程序运行时会自动计算填充(因为变换前后元素数量不变,我们可以根据其他维度的大小,最终确定-1这个位置应该表示的数字
  3. 如果需要通过修改内部元素的存储顺序以实现维度调整,需要使用tf.transpose函数
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数原型
  • 用法
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档