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

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

PyTorch 相當于 numpy reshape 函數

PyTorch 相當于 numpy reshape 函數

犯罪嫌疑人X 2023-12-09 15:42:18
您好,我有這些函數來展平我的復雜類型數據,將其提供給 NN 并將 NN 預測重建為原始形式。def flatten_input64(Input): #convert (:,4,4,2) complex matrix to (:,64) real vector  Input1 = Input.reshape(-1, 32, order='F')  Input_vector=np.zeros([19957,64],dtype = np.float64)  Input_vector[:,0:32] = Input1.real  Input_vector[:,32:64] = Input1.imag  return Input_vectordef convert_output64(Output): #convert (:,64) real vector to (:,4,4,2) complex matrix    Output1 = Output[:,0:32] + 1j * Output[:,32:64]  output_matrix = Output1.reshape(-1, 4 ,4 ,2 , order = 'F')  return output_matrix我正在編寫一個自定義損失,要求所有操作都在 torch 中,并且我應該在 PyTorch 中重寫我的轉換函數。問題是 PyTorch 沒有“F”順序重塑。我嘗試編寫自己的 F reorder 版本,但是它不起作用。你知道我的錯誤是什么嗎?def convert_output64_torch(input):   # number_of_samples = defined   for i in range(0, number_of_samples):     Output1 = input[i,0:32] + 1j * input[i,32:64]     Output2 = Output1.view(-1,4,4,2).permute(3,2,1,0)   if i == 0:     Output3 = Output2   else:     Output3 = torch.cat((Output3, Output2),0)return Output3更新:在 @a_guest 評論之后,我嘗試使用轉置和重塑來重新創建矩陣,并且我得到的代碼與 numy 中的 F 階重塑相同:def convert_output64_torch(input):   Output1 = input[:,0:32] + 1j * input[:,32:64]   shape = (-1 , 4 , 4 , 2)   Output3 = torch.transpose(torch.transpose(torch.reshape(torch.transpose(Output1,0,1),shape[::-1]),1,2),0,3)return Output3
查看完整描述

1 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

在 Numpy 和 PyTorch 中,您可以通過以下操作獲得等效的結果:(a.T.reshape(shape[::-1]).T其中a是數組或張量):


>>> a = np.arange(16).reshape(4, 4)

>>> a

array([[ 0,  1,  2,  3],

       [ 4,  5,  6,  7],

       [ 8,  9, 10, 11],

       [12, 13, 14, 15]])

>>> shape = (2, 8)

>>> a.reshape(shape, order='F')

array([[ 0,  8,  1,  9,  2, 10,  3, 11],

       [ 4, 12,  5, 13,  6, 14,  7, 15]])

>>> a.T.reshape(shape[::-1]).T

array([[ 0,  8,  1,  9,  2, 10,  3, 11],

       [ 4, 12,  5, 13,  6, 14,  7, 15]])


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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