(Pytorch) 특정 텐서 값 바꾸기

Tensor에서 특정 값을 교체하고 싶다면 아래 예제 코드와 같이 구현하면 됩니다.

  • 예(0을 10으로 바꾸기)
a = torch.randint(10, (3, 5))

print(a)
#tensor(((6, 2, 7, 9, 7),
#        (3, 3, 4, 3, 7),
#        (0, 9, 0, 9, 6)))


a(a==0) = 10    # 바꾸기 전 값: 0    바꾼 후 값: 10

print(a)
#tensor((( 6,  2,  7,  9,  7),
#        ( 3,  3,  4,  3,  7),
#        (10,  9, 10,  9,  6)))

텐서 조건문이 다음과 같이 작동하기 때문입니다.

a = torch.randint(10, (3, 5))

print(a)
#tensor(((5, 9, 7, 0, 3),
#        (1, 6, 3, 6, 2),
#        (5, 8, 4, 2, 8)))
        
print(a==0)
#tensor(((False, False, False,  True, False),
#        (False, False, False, False, False),
#        (False, False, False, False, False)))