torch.max : 최댓값을 출력
- dim=0이면 dim=1이면 뭐를 기준으로 어떻게 더한다...이런게 나는 헷갈려서 터득한 방법이 있다 !
- torch.sum과 마찬가지로 인덱스를 이용하여 구하는 방법
- 예를 들어, 아래와 같이 dim=0을 기준으로 하면 인덱스 0번째 값이 5이므로, 5개가 묶인 곳 중에서 최댓값 하나를 산출하고 나머지 1번째 인덱스 값만큼의 크기로 출력 (즉, (1, 3)크기의 행렬이 출력된다.)
>>> import torch
>>> a = torch.randn(5, 3)
>>> print(a)
"""
tensor([[-1.1260, -0.7415, -0.9703],
[-0.8786, -1.6561, -0.2796],
[ 0.1368, 0.8606, -0.3936],
[-1.1206, -0.4867, -0.2786],
[ 1.4993, -1.3967, 1.6760]])
"""
------------------------------------------------------------------------
>>> d0_max = torch.max(a, dim=0)
>>> print(d0_max)
"""
torch.return_types.max(
values=tensor([1.4993, 0.8606, 1.6760]),
indices=tensor([4, 2, 4]))
"""
------------------------------------------------------------------------
>>> d1_max = torch.max(a, dim=1)
>>> print(d0_max)
"""
torch.return_types.max(
values=tensor([1.4993, 0.8606, 1.6760]),
indices=tensor([4, 2, 4]))
"""
⚠ dim 파라미터를 추가하지 않으면 순서가 1행(1열-2열-3열-4열) -> 2행(1열-2열-3열-4열) -> ... 순으로 확인한다.
torch.argmax : 최댓값의 위치를 출력
- 마찬가지로 인덱스를 이용한다.
- 예를 들어, 아래와 같이 dim=1을 기준으로 하면 인덱스 1번째 값이 3이므로, 3개가 묶인 곳 중에서 최댓값 하나를 산출하고 나머지 0번째 인덱스 값만큼의 크기로 출력 (즉, (1, 5)크기의 행렬이 출력된다.)
import torch
a = torch.randn(5, 3)
print(a)
"""
tensor([[ 0.3659, 0.6993, 1.3399],
[-0.5662, -1.6437, -1.2653],
[ 1.4646, -0.5074, -0.2942],
[-1.1322, -0.2264, 0.6666],
[-1.0214, 0.7334, 1.6440]])
"""
-------------------------------------------------------------------------------
d0_argmax = torch.argmax(a, dim=0)
print(d0_argmax)
"""
tensor([2, 4, 4])
"""
-------------------------------------------------------------------------------
d1_argmax = torch.argmax(a, dim=1)
print(d1_argmax)
"""
tensor([2, 0, 0, 2, 2])
"""
'Programming > Pytorch' 카테고리의 다른 글
[Pytorch] GPU device (0) | 2023.01.28 |
---|---|
[Pytorch] Dataset, DataLoader (0) | 2023.01.27 |
[Pytorch] nn.Linear( ), MLP (0) | 2023.01.20 |
[Pytorch] 텐서(차원) 관련 함수 정리 (0) | 2023.01.18 |
[Pytorch] 모듈 및 함수 정리 (0) | 2023.01.15 |