y.view(y.size(0), -1)代码解读:
用于改变PyTorch张量(tensor)y的形状的。
y.size(0)返回y的第一维的大小。
-1表示让PyTorch自动计算该维度的大小,以确保新的张量与原始张量有相同的元素数量。
功能:将y的第一维保持不变,然后将其余的维度展平。
#!/usr/bin/env python3
import torch
x = torch.randn((3, 1, 2))
print(x)
print(x.size(0))
print(x.view(x.size(0), -1))
y = torch.randn((3, 2, 2))
print(y)
print(y.size(0))
print(y.view(y.size(0), -1))
z = torch.randn((2,3))
print(z)
print(z.size(0))
print(z.view(z.size(0), -1))
# x输出
tensor([[[ 1.3927, 0.8704]],
[[-2.2128, 0.1680]],
[[ 1.3459, 1.6155]]])
3
tensor([[ 1.3927, 0.8704],
[-2.2128, 0.1680],
[ 1.3459, 1.6155]])
# y输出
tensor([[[-1.0421, 0.2478],
[-1.5509, 1.5805]],
[[ 0.6882, 0.4131],
[-0.0034, 0.1004]],
[[ 0.2090, -0.7472],
[ 1.2551, 0.4388]]])
3
tensor([[-1.0421, 0.2478, -1.5509, 1.5805],
[ 0.6882, 0.4131, -0.0034, 0.1004],
[ 0.2090, -0.7472, 1.2551, 0.4388]])
# z输出
tensor([[-0.1616, -0.6525, -1.9303],
[-1.4292, -2.0358, 0.2268]])
2
tensor([[-0.1616, -0.6525, -1.9303],
[-1.4292, -2.0358, 0.2268]])