簡體   English   中英

如何將 Pytorch 張量拆分為不同的維度?

[英]How to split a Pytorch tensor into different dimensions?

我是 Pytorch 的新手。

假設我有一個具有這種形狀的張量torch.size([1, 25200, 11])

我想把它分成 3 個更小的張量,3 個更小的張量中的每一個都具有第一個的形狀。 torch.size([1, 3, 80, 80, 11])和第二個torch.size([1, 3, 40, 40 , 11])3rd torch.size([1, 3, 20, 20, 11)].

真的很感謝你的幫助。

謝謝

解釋這些數字:

80x80x3 = 19200

40x40x3 = 4800

20x20x3=1200 ,加上這些結果我們有 25200,1 是批量大小,11 是類 + xywh

像這樣的事情應該有效。

import torch
tensor = torch.ones((1, 25200, 11))
first_break = tensor[:, 0:19200, :].view((1, 3, 80, 80, 11))
second_break = tensor[:, 19200:19200+4800, :].view((1, 3, 40, 40, 11))
third_break = tensor[:, 19200+4800:19200+4800+1200, :].view((1, 3, 20, 20, 11))

如果你給出更多的解釋和上下文,代碼可以得到清理而不是那么硬編碼,或者這可能讓你足夠運行。

你有沒有嘗試過:


  T1= torch.narrow(YourTensor, 1,0 , 80*80*3)
  T1v = T1.view(1,3,80,80,11)

  T2= torch.narrow(YourTensor, 1,80*80*3 , 40*40*3)
  T2v = T2.view(1,3,40,40,11)

  T3= torch.narrow(YourTensor, 1,80*80*3 + 40*40*3 , 20*20*3)
  T3v = T3.view(1,3,20,20,11)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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