如何将 Pytorch 张量拆分为不同的维度?
How to split a Pytorch tensor into different dimensions?
我是 Pytorch 新手。
假设我有一个具有这种形状的张量 torch.size([1, 25200, 11])
我想把它分成 3 个较小的张量,3 个较小的张量中的每一个都具有 1st 的形状。
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)
我是 Pytorch 新手。
假设我有一个具有这种形状的张量 torch.size([1, 25200, 11])
我想把它分成 3 个较小的张量,3 个较小的张量中的每一个都具有 1st 的形状。
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)