亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我不能在 PyTorch 張量后面附加 torch.cat?

為什么我不能在 PyTorch 張量后面附加 torch.cat?

慕娘9325324 2022-09-13 19:51:18
我有:import torchinput_sliced = torch.rand(180, 161)output_sliced = torch.rand(180,)batched_inputs = torch.Tensor()batched_outputs = torch.Tensor()print('input_sliced.size', input_sliced.size())print('output_sliced.size', output_sliced.size())batched_inputs = torch.cat((batched_inputs, input_sliced))batched_outputs = torch.cat((batched_outputs, output_sliced))print('batched_inputs.size', batched_inputs.size())print('batched_outputs.size', batched_outputs.size())此輸出:input_sliced.size torch.Size([180, 161])output_sliced.size torch.Size([180])batched_inputs.size torch.Size([180, 161])batched_outputs.size torch.Size([180])我需要附加那些,但不起作用。我做錯了什么?batchedtorch.cat
查看完整描述

1 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

假設你在循環中這樣做,我會說最好這樣做:


import torch


batch_input, batch_output = [], []

for i in range(10):  # assuming batch_size=10

    batch_input.append(torch.rand(180, 161))

    batch_output.append(torch.rand(180,))


batch_input = torch.stack(batch_input)

batch_output = torch.stack(batch_output)


print(batch_input.shape)   # output: torch.Size([10, 180, 161])

print(batch_output.shape)  # output: torch.Size([10, 180])

如果您先驗地知道結果形狀,則可以預先分配最終形狀,只需將每個樣品分配到批次中的相應位置即可。這將更節省內存。batch_*Tensor


查看完整回答
反對 回復 2022-09-13
  • 1 回答
  • 0 關注
  • 94 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號