pytorchを使い、次元の異なるtensor同志をcatしたいです。
元となるデータは以下の通りの形状です。
python
1a tensor([[[ 0.4548, -0.8869, 0.0518], 2 [-1.4844, -0.6415, 1.9144], 3 [-0.8557, -0.4116, -1.5224]], 4 5 [[ 0.2991, 1.5506, -0.1184], 6 [ 0.7515, -1.7047, 1.5214], 7 [ 0.0742, -1.0651, -1.7436]]]) 8a_sum1 tensor([[-1.8852, -1.9401, 0.4437], 9 [ 1.1248, -1.2192, -0.3406]]) 10a_sum2 tensor([[-0.3803, -0.2116, -2.7897], 11 [ 1.7313, 0.5682, -2.7344]]) 12
やりたいこと
前述したような行列に対して、まず各列・各行方向にsumを行い、その後それぞれの統計量を求め、最後に全ての結果をcatしたいです。
# 試したこと
python
1a_sum1=torch.sum(a,1) 2a_sum2=torch.sum(a,2) 3print('a_sum1',a_sum1) 4print('a_sum2',a_sum2) 5#print('a_sum',a_sum) 6print('============平均====================') 7a_mean1=torch.mean(a_sum1,1) 8a_mean2=torch.mean(a_sum2,1) 9print('a_mean1',a_mean1.shape,a_mean1) 10print('a_mean2',a_mean2.shape,a_mean2) 11print('============分散====================') 12a_sum_var1=torch.var(a_sum1,1) 13a_sum_var2=torch.var(a_sum,1) 14print('a_sum_var1',a_sum_var1.shape,a_sum_var1) 15print('a_sum_var2',a_sum_var2.shape,a_sum_var) 16print('============中央値===================') 17a_sum_medi1 = torch.median(a_sum1,1) 18a_sum_medi2 = torch.median(a_sum2,1) 19#a_sum_medi1 = torch.flatten(a_sum_medi1) 20#a_sum_medi2 = torch.flatten(a_sum_medi2) 21print('a_sum_medi1',a_sum_medi1) 22print('a_sum_medi2',a_sum_medi2) 23print('==============Cat===================') 24a=torch.cat((a_mean1,a_sum_var1,a_sum_var2,a_sum_medi1,a_sum_medi2),1))
python
1実行結果 2a tensor([[[ 0.4548, -0.8869, 0.0518], 3 [-1.4844, -0.6415, 1.9144], 4 [-0.8557, -0.4116, -1.5224]], 5 6 [[ 0.2991, 1.5506, -0.1184], 7 [ 0.7515, -1.7047, 1.5214], 8 [ 0.0742, -1.0651, -1.7436]]]) 9a_sum1 tensor([[-1.8852, -1.9401, 0.4437], 10 [ 1.1248, -1.2192, -0.3406]]) 11a_sum2 tensor([[-0.3803, -0.2116, -2.7897], 12 [ 1.7313, 0.5682, -2.7344]]) 13============平均==================== 14a_mean1 torch.Size([2]) tensor([-1.1272, -0.1450]) 15a_mean2 torch.Size([2]) tensor([-1.1272, -0.1450]) 16============分散==================== 17a_sum_var1 torch.Size([2]) tensor([1.8516, 1.4022]) 18a_sum_var2 torch.Size([2]) tensor([0.0495, 0.9812, 0.4496]) 19============中央値=================== 20a_sum_medi1 torch.return_types.median( 21values=tensor([-1.8852, -0.3406]), 22indices=tensor([0, 2])) 23a_sum_medi2 torch.return_types.median( 24values=tensor([-0.3803, 0.5682]), 25indices=tensor([0, 1])) 26==============Cat=================== 27--------------------------------------------------------------------------- 28TypeError Traceback (most recent call last) 29<ipython-input-226-f050fe622bfe> in <module> 30 25 print('a_sum_medi2',a_sum_medi2) 31 26 print('==============Cat===================') 32---> 27 a=torch.cat((a_mean1,a_sum_var1,a_sum_var2,a_sum_medi1,a_sum_medi2),1) 33 34TypeError: expected Tensor as element 3 in argument 0, but got torch.return_types.median
最後にエラーになってしまいます。苦戦していますので、どなたかアドバイスいただけるとありがたいです。
エラー箇所の前については、実行可能なコードを提示いただけますか?a_sumとか未定義の変数が複数混在しており、実行可能になっていません。
回答1件
あなたの回答
tips
プレビュー