簡體   English   中英

pytorch:如何在沒有任何條目的情況下正確初始化 Tensor?

[英]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/錯誤。

你有torch.empty功能:

torch.empty(5,3,0)
>>> tensor([], size=(5, 3, 0))

是一個沒有任何條目的張量

這可以是另一種方式,具體取決於您的用例。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM