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

问题描述 投票:2回答:2

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

T = T.reshape(5, 300, 8)
T.shape
>> Size[5, 300, 8]

那么,这个新的Tensor是否表示与原始Tensor相同的属性?通过属性,我的意思是,我可以说这也是批量大小为8的张量,每个批次有5个文档,每个文档有300维编码吗?

这会影响模型的训练吗?如果重塑Tensor弄乱了数据点,那么训练就没有意义了。例如,如果像上面这样重塑,则将输出为5个样本的批次,每个样本有300个大小为8的文档。如果发生这种情况,那就没用了,因为我没有300个文档,所以我也没有一批5个样本。

我需要像这样重塑形状,因为我之间的模型会产生形状为[8, 5, 300]的输出,而下一层将输入接受为[5, 300, 8]

python tensorflow pytorch reshape tensor
2个回答
3
投票

NO

您需要了解reshape / reshapeview之间的区别。

viewpermute仅更改张量的[permute],重新排列元素。因此

reshape

如果还要更改元素的顺序,则需要view

shape

2
投票

不!我犯了类似的错误。想象一下,将2-d Tensor(矩阵)转换为1-D Tensor(Array)并在其上应用了变换功能。由于您的新张量具有数组的特征,因此这将在代码中造成严重的问题。希望你明白我的意思。

© www.soinside.com 2019 - 2024. All rights reserved.