Python PyTorch中的.flatte()和.view(-1)之间有什么区别?
Python PyTorch中的.flatte()和.view(-1)之间有什么区别?,python,pytorch,Python,Pytorch,.flant()和.view(-1)都可以展平PyTorch中的张量。有什么区别 .flant()是否复制张量的数据 .view(-1)是否更快 是否存在.flant()不起作用的情况 除了@adeelh的评论之外,还有另一个区别:torch.flatte()会导致.reforme(),结果是: […]torch.reformate可能返回原始张量的副本或视图。您不能指望它返回视图或副本 另一个区别是,整形()可以对连续张量和非连续张量进行操作,而view()只能对连续张量进行操作。在这里还
.flant()
和.view(-1)
都可以展平PyTorch中的张量。有什么区别
.flant()
是否复制张量的数据.view(-1)
是否更快.flant()
不起作用的情况除了@adeelh的评论之外,还有另一个区别:
torch.flatte()
会导致.reforme()
,结果是:
- […]
可能返回原始张量的副本或视图。您不能指望它返回视图或副本torch.reformate
- 另一个区别是,整形()可以对连续张量和非连续张量进行操作,而view()只能对连续张量进行操作。在这里还可以看到关于连续的含义
- 社区请求了一段时间的
功能,之后,该功能在中实现flant
- 您可以看到flatte的实现,在
行中可以看到对return
的调用.reformate()
展平
只是视图
常见用例的一部分
还有其他几种:
作用
等效视图
逻辑
flant()
视图(-1)
展平(开始、结束)
view(*t.shape[:start],-1,*t.shape[end+1:])
挤压()
视图(*[s代表t形中的s,如果s!=1])
unqueze(一)
视图(*t.shape[:i-1],1,*t.shape[i:])
我认为它们对于
.flatte()
的默认参数是相同的,但是.flatte()
允许您传递一个开始维度
和一个结束维度
,以获得更复杂的行为。例如,torch.one(10,4,5,6).flatten(start\u dim=1,end\u dim=2)
返回一个形状为(10,20,6)
的张量。这个答案应该有更多的投票权