Tensor 연산
전치행렬, 인덱싱, 슬라이싱, 수학 연산, 선형대수, 랜덤 샘플링 등은 https://pytorch.org/docs/stable/torch.html
에서 확인하면 된다.
torch — PyTorch 1.8.1 documentation
Shortcuts
pytorch.org
연산을 할 때는 GPU를 쓰는게 일반적으로 더 빠르다.
Colab을 사용한다면, Edit>Notebook Settings에서 GPU를 할당해서 사용하면 된다. (pytorch.org 튜토리얼 상단에 링크가 있다.)
Colaboratory란 무엇인가요?
줄여서 'Colab'이라고도 하는 Colaboratory는 Google 리서치팀에서 개발한 제품입니다. Colab을 사용하면 누구나 브라우저를 통해 임의의 Python 코드를 작성하고 실행할 수 있습니다. Colab은 특히 머신러닝, 데이터 분석 및 교육에 적합합니다. 더욱 기술적으로 설명하면, Colab은 설정 없이도 사용 가능한 호스팅 Jupyter 메모장 서비스로, GPU를 포함한 컴퓨팅 리소스를 무료로 제공합니다.
출처 : research.google.com/colaboratory/faq.html
Colaboratory란 무엇인가요?
줄여서 'Colab'이라고도 하는 Colaboratory는 Google 리서치팀에서 개발한 제품입니다. Colab을 사용하면 누구나 브라우저를 통해 임의의 Python 코드를 작성하고 실행할 수 있습니다. Colab은 특히 머신러닝, 데이터 분석 및 교육에 적합합니다. 더욱 기술적으로 설명하면, Colab은 설정 없이도 사용 가능한 호스팅 Jupyter 메모장 서비스로, GPU를 포함한 컴퓨팅 리소스를 무료로 제공합니다.
출처 : research.google.com/colaboratory/faq.html

표준 NumPy 같은 인덱싱과 슬라이싱
tensor = torch.ones(4, 4)
tensor[:, 1] = 0 //모든 행의 1열을 0으로 변경
print(tensor)
out :
tensor([[1., 0., 1., 1.],
[1., 0., 1., 1.],
[1., 0., 1., 1.],
[1., 0., 1., 1.]])
행렬 곱
print(f"tensor.mul(tensor) \n {tensor.mul(tensor} \n")
#Alternative syntax:
print(f"tensor * tensor \n {tensor * tensor}")
x.copy_(y), x.t_() 같이 언더바(_)가 있는 함수는 변수값(x)를 바꾼다.
In-place(제자리) 연산은 메모리를 절약하지만 직접적으로 기록을 없애기 때문에 권장하지는 않는다.
print(tensor, "\n")
tensor.add_(5)
print(tensor)
out:
t: tensor([2., 2., 2., 2., 2.])
n: [2. 2. 2. 2. 2.]
tensor([[1., 0., 1., 1.],
[1., 0., 1., 1.],
[1., 0., 1., 1.],
[1., 0., 1., 1.]])
tensor([[6., 5., 6., 6.],
[6., 5., 6., 6.],
[6., 5., 6., 6.],
[6., 5., 6., 6.]])
Tensor -> NumPy 배열 변환 가능
텐서와 넘파이 배열은 메모리 주소를 공유할 수 있다, 그래서 서로 변환이 가능하다.
t = torch.ones(5) // 1로 5개 채움
print(f"t: {t}")
n = t.numpy() //텐서를 numpy 배열로 변환하여 저장
print(f"n: {n}")
out:
t: tensor([1., 1., 1., 1., 1.])
n: [1. 1. 1. 1. 1.]
텐서에 변화가 생기면 Numpy 배열에도 반영된다.
t.add_(1) // t에 1씩 더함
print(f"t: {t}")
print(f"n: {n}")
out:
t: tensor([2., 2., 2., 2., 2.])
n: [2. 2. 2. 2. 2.]
Numpy 배열 -> Tensor 로도 변환 가능
'딥러닝, 머신러닝 기초 > Pytorch' 카테고리의 다른 글
Pytorch 튜토리얼 : Tensor란? (0) | 2021.04.15 |
---|