首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重塑张量是否保留了原张量的特征?

重塑张量是否保留了原张量的特征?
EN

Stack Overflow用户
提问于 2020-05-10 04:17:20
回答 2查看 501关注 0票数 3

我有一个形状为(8, 5, 300)的张量T,其中8是批次大小,5是每批文档的数量,300是每个文档的编码。如果我重塑张量如下,我的张量属性是否保持不变?

代码语言:javascript
复制
T = T.reshape(5, 300, 8)
T.shape
>> Size[5, 300, 8]

那么,这个新的张量是否表示与原始张量相同的性质呢?我的意思是,这也是一个批次大小为8的张量,每批有5个文档,每个文档有300个维度的编码吗?

这会影响模型的训练吗?如果张量的重塑扰乱了数据点,那么训练就没有意义了。例如,如果像上面这样的整形,输出作为一批5个样本,300个大小为8的文档。如果是这样的话,那就没用了,因为我没有300份文件,我也没有5批样品。

我需要这样重塑它,因为我的模型在中间产生形状[8, 5, 300]的输出,下一层接受输入为[5, 300, 8]

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-10 05:04:22

NO

您需要理解reshape/viewpermute之间的区别。

reshapeview只改变张量的"shape“,不对元素进行重新排序。因此

代码语言:javascript
复制
orig = torch.rand((8, 5, 300))
resh = orig.reshape(5, 300, 8)

orig[0, 0, :] != resh[0, :, 0]  

如果还想更改元素的顺序,则需要对其进行permute

代码语言:javascript
复制
perm = orig.permute(1, 2, 0)
orig[0, 0, :] == perm[0, :, 0]
票数 3
EN

Stack Overflow用户

发布于 2020-05-10 05:15:03

不,哦!我犯了一个类似的错误。假设您将二维张量(矩阵)转换为一维张量(数组),并在其上应用转换功能。这将在代码中产生严重问题,因为新的张量具有数组的特性。希望你明白我的意思。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61707112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档