내가 공부하려 만든 Pytorch8(Type Casting ~ In-place Operation)
Type Casting 텐서에는 자료형이라는 것이 있습니다. 각 데이터형별로 정의되어져 있는데, 예를 들어 32비트의 부동 소수점은 torch.FloatTensor를, 64비트의 부호 있는 정수는 torch.LongTensor를 사용합니다. GPU 연산을 위한 자료형도 있습니다. 예를 들어 torch.cuda.FloatTensor가 그 예입니다. 그리고 이 자료형을 변환하는 것을 타입 캐스팅이라고 합니다. 예제 lt = torch.LongTensor([1, 2, 3, 4]) print(lt) print(lt.float()) tensor([1, 2, 3, 4]) tensor([1., 2., 3., 4.]) bt = torch.ByteTensor([True, False, False, True]) print(..
더보기
내가 공부하려 만든 Pytorch6(view,squeeze)
View 원소의 수를 유지하면서 텐서의 크기 변경. 파이토치 텐서의 뷰(View)는 넘파이에서의 리쉐이프(Reshape)와 같은 역할을 합니다. Reshape라는 이름에서 알 수 있듯이, 텐서의 크기(Shape)를 변경해주는 역할을 합니다. 1. 3d 텐서 생성 t = np.array([[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]]) ft = torch.FloatTensor(t) print(ft) print(ft.shape) print(ft.dim()) tensor([[[ 0., 1., 2.], [ 3., 4., 5.]], [[ 6., 7., 8.], [ 9., 10., 11.]]]) torch.Size([2, 2, 3]) 3 2. 3d 텐서에서 2d 텐서로 변..
더보기
내가 공부하려고 만든 Pytorch4(Permute와 Transpose)
Permute와 Transpose permute()와 transpose()는 유사한 방식으로 작동한다. transpose()는 딱 두 개의 차원을 맞교환할 수 있다. 그러나 permute()는 모든 차원들을 맞교환할 수 있다. 1. 3차원 텐서 생성 x = torch.rand(16, 32, 3) print(x.shape) print(x.dim()) torch.Size([16, 32, 3]) 3 2. Transpose x.transpose(0,2)가 x의 차원 0과 2의 값인 3과 16의 값을 서로 바꾸어 준다. y=x.transpose(0,2) y.shape torch.Size([3, 32, 16]) 3. Permute x.permute(2,1,0)가 x의 차원의 값이 0, 1, 2값이 2, 1, 0의 ..
더보기
내가 공부하려고 만든 Pytorch5(3d Tensor 혼자 해보기)
3d tensor 생성 z = torch.FloatTensor( [ [[0, 0, 0, 0, 0], [50, 50, 50, 50, 50], [100, 100, 100, 100, 100], [150, 150, 150, 150, 150], [0, 0, 0, 0, 0]], [[10, 10, 10, 10, 10], [60, 60, 60, 60, 60], [110, 110, 110, 110, 110], [160, 160, 160, 160, 160], [0, 0, 0, 0, 0]], [[20, 20, 20, 20, 20], [70, 70, 70, 70, 70], [120, 120, 120, 120, 120], [170, 170, 170, 170, 170], [250, 250, 250, 250, 250]], ] ) ..
더보기
내가 공부하려고 만든 Pytorch2(벡터, 행렬, 텐서 만들기)
넘파이로 텐서 만들기(벡터와 행렬 만들기) PyTorch로 텐서를 만들어보기 전에 우선 Numpy로 텐서를 만들어보겠습니다. 우선 numpy를 임포트합니다. import numpy as np Numpy로 텐서를 만드는 방법은 간단한데 [숫자, 숫자, 숫자]와 같은 형식으로 만들고 이를 np.array()로 감싸주면 됩니다. 1) 1D with Numpy Numpy로 1차원 텐서인 벡터를 만들어보겠습니다. t = np.array([0., 1., 2., 3., 4., 5., 6.]) # 파이썬으로 설명하면 List를 생성해서 np.array로 1차원 array로 변환함. print(t) [0. 1. 2. 3. 4. 5. 6.] 이제 1차원 텐서인 벡터의 차원과 크기를 출력해보겠습니다. print('Rank ..
더보기