[英]pytorch: How do I properly initialize Tensor without any entries?
我現在正在做的是:
In [1]: torch.Tensor([[[] for _ in range(3)] for _ in range(5)])
Out[1]: tensor([], size=(5, 3, 0))
這對我來說很好用,但是是否有我缺少的手電筒功能可以做到這一點?
提前致謝!
編輯:我的用例是這樣的:我用它來聚合所有維度相同且沒有空維度的張量。 我正在使用 torch.cat:
# results start with shape (a,b,0)
results = torch.Tensor([[[] for _ in range(b)] for _ in range(a)])
for t in range(time):
# r has shape (a,b)
r = model(...)
# results now has shape (a,b,t)
results = torch.cat([results,r.unsqueeze(2)],dim=-1)
簡單地附加到列表對我來說是不切實際的,因為我必須對每一步的results
進行整形操作(我在做波束搜索)。
一個解決方案也是在我獲得第一個返回的 Tensor 之前不初始化results
,但這感覺 unpythonic/錯誤。
這可以是另一種方式,具體取決於您的用例。
alpha = torch.tensor([])
In[5]: alpha[:,None,None,None]
Out[5]: tensor([], size=(0, 1, 1, 1))
其他方法:
torch.tensor([[[[]]]]) #tensor([], size=(1, 1, 1, 0))
torch.tensor([[[[],[]]]]) #tensor([], size=(1, 1, 2, 0))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.