pytorc torch. uint 8 과 torch. log / torch. float

버 전: pytorch 1.0 목적: tensor 의 index 와 mask
예시
다음은 torch.longtorch.uint8 데이터 유형 이 index / mask 에서 의 서로 다른 역할 에 대해 분석 하 겠 습 니 다.
t = torch.rand(42)
"""
tensor([[0.5492, 0.2083],
        [0.3635, 0.5198],
        [0.8294, 0.9869],
        [0.2987, 0.0279]])
"""
#         uint8, 
mask= torch.ones(4,dtype=torch.uint8)
mask[2] = 0
print(mask)
print(t[mask, :])
"""
 tensor([1, 1, 0, 1], dtype=torch.uint8)
 
 tensor([[0.5492, 0.2083],
        [0.3635, 0.5198],
        [0.2987, 0.0279]]) 
"""

#   ,      long
idx = torch.ones(3,dtype=torch.long)
idx[1] = 0
print(idx)
print(t[idx, :])
"""
tensor([1, 0, 1])
tensor([[0.3635, 0.5198],
        [0.5492, 0.2083],
        [0.3635, 0.5198]])
"""


결론.
  • mask 의 데이터 형식 이 torch.uint8 일 때 이때 tensor 는 mask, tensor 중의 1 에 대응 하 는 줄 / 열 보존, 0 에 대응 하 는 줄 / 열 반올림 으로 사 용 됩 니 다.또한 마스크 의 차원 은 원본 tensor 의 차원 과 일치 해 야 합 니 다.사실 이해 하기 쉽 습 니 다. 마스크 이기 때문에 원본 tensor 위 에 덮어 야 하기 때문에 원본 tensor 와 일치 하 는 dimension 이 필요 합 니 다.위의 예 에서 보증 mask.size(0) = t.shape(0) 이 필요 하 다. 그렇지 않 으 면 잘못 보고 할 수 있다.
  • idx 의 데이터 형식 이 torch.long 일 때 이때 tensor 는 index 로 사용 되 고 tensor 의 모든 숫자 는 꺼 낼 tensor 의 행렬 색인 을 대표 합 니 다.index 로 사용 할 때 원본 tensor 에서 지정 한 행렬 을 꺼 내기 위해 서 입 니 다. 따라서 얼마 만큼 꺼 내 는 것 은 제한 이 없습니다.위의 예 로 는 보증 이 필요 없다 idx.size(0) = t.shape(0).
  • 좋은 웹페이지 즐겨찾기