2017-11-19 14 views

답변

2
import torch 

a = torch.rand(2, 3) 
print(a) 
b = torch.eye(a.size(1)) 
c = a.unsqueeze(2).expand(*a.size(), a.size(1)) 
d = c * b 
print(d) 

출력

0.5938 0.5769 0.0555 
0.9629 0.5343 0.2576 
[torch.FloatTensor of size 2x3] 


(0 ,.,.) = 
    0.5938 0.0000 0.0000 
    0.0000 0.5769 0.0000 
    0.0000 0.0000 0.0555 

(1 ,.,.) = 
    0.9629 0.0000 0.0000 
    0.0000 0.5343 0.0000 
    0.0000 0.0000 0.2576 
[torch.FloatTensor of size 2x3x3] 
+0

정말 고마워요, 제가 정확히 원하는 것입니다. –

+0

그런데 변수에 적용 할 때 자동으로 역으로 계산할 수있는 또 다른 단계가 있습니까? –

+0

@ 刘钦 卿 나는 당신의 질문을 이해하지 못합니다. 새로운 질문이있는 경우 별도의 질문으로 SO에 게시하십시오 (세부 정보 포함). 또한, 나의 대답이 당신을 도왔다면, 당신은 녹색 표시를 지워서 그것을 받아 들일 수 있습니다, 감사합니다. –

0

후방 변수에 배치하여 자동차 용 용액.

import torch 

a = torch.rand(2, 3) 
print(a) 

b = Variable(torch.eye(a.size(1))) 
c = a.unsqueeze(2).expand(*a.size(), degree_inv.size(1)) 
b_expand = b.unsqueeze(0).expand(c.size(0), *b.size()) 
d = torch.mul(c.double(), b_expand.double()) 

print(d)