개발자의 스터디 노트
텐서를 만들어 봅시다. 본문
텐서를 만들어 봅니다.
1. 텐서의 속성을 볼 수 있는 함수를 선언합니다.
## 헬퍼함수 describe(x)를 정의
def describe(x):
print("타입: {}".format(x.type()))
print("크기: {}".format(x.shape))
print("값: \n{}".format(x))
2. 기본적인 텐서 생성
### 기본적인 텐서 생성
import torch
describe(torch.Tensor(2,3))
타입: torch.FloatTensor
크기: torch.Size([2, 3])
값:
tensor([[0., 0., 0.],
[0., 0., 0.]])
3. 랜덤 값을 가진 텐서 생성
### 랜덤 텐서 생성
describe(torch.rand(2,3)) # 균등분포
describe(torch.randn(2,3)) # 표준 정규 분포
타입: torch.FloatTensor
크기: torch.Size([2, 3])
값:
tensor([[0.8183, 0.9059, 0.9607],
[0.3799, 0.2001, 0.2302]])
타입: torch.FloatTensor
크기: torch.Size([2, 3])
값:
tensor([[-0.5862, 0.3827, 0.4590],
[-0.0519, 0.8532, -0.1195]])
4. 특정값으로 텐서 초기화 하기
import torch
# 텐서를 0으로 초기화 생성
describe(torch.zeros(2,3))
# 텐서를 1로 초기화 생성
x = torch.ones(2,3)
describe(x)
#텐서를 특정값으로 초기화 생성
# 특정값 초기화 함수 fill_()
x.fill_(5)
describe(x)
타입: torch.FloatTensor
크기: torch.Size([2, 3])
값:
tensor([[0., 0., 0.],
[0., 0., 0.]])
타입: torch.FloatTensor
크기: torch.Size([2, 3])
값:
tensor([[1., 1., 1.],
[1., 1., 1.]])
타입: torch.FloatTensor
크기: torch.Size([2, 3])
값:
tensor([[5., 5., 5.],
[5., 5., 5.]])
5. 파이썬 리스트로 텐서를 만들고 초기화 하기
x = torch.Tensor([[1,2,3],[4,5,6]])
describe(x)
타입: torch.FloatTensor
크기: torch.Size([2, 3])
값:
tensor([[1., 2., 3.],
[4., 5., 6.]])
6. 넘파이로 텐서를 만들고 초기화 하기
- Numpy는 행렬이나 일반적으로 대규모 다차원 배열을 쉽게 처리할 수 있도록 지원하는 파이썬의 라이브러리입니다.
- Numpy는 데이터 구조 외에도 수치 계산을 위해 효율적으로 구현된 기능을 제공합니다.
import torch
import numpy as np
npy = np.random.rand(2,3)
describe(torch.from_numpy(npy))
타입: torch.DoubleTensor
크기: torch.Size([2, 3])
값:
tensor([[0.0073, 0.8063, 0.2914],
[0.0318, 0.5833, 0.4477]], dtype=torch.float64)
7. 텐서 속성
x = torch.FloatTensor([[1,2,3],[4,5,6]])
describe(x)
타입: torch.FloatTensor
크기: torch.Size([2, 3])
값:
tensor([[1., 2., 3.],
[4., 5., 6.]])
x = x.long()
describe(x)
타입: torch.LongTensor
크기: torch.Size([2, 3])
값:
tensor([[1, 2, 3],
[4, 5, 6]])
x = torch.tensor([[1,2,3],[4,5,6]], dtype=torch.int64)
describe(x)
타입: torch.LongTensor
크기: torch.Size([2, 3])
값:
tensor([[1, 2, 3],
[4, 5, 6]])
x = x.float()
describe(x)
타입: torch.FloatTensor
크기: torch.Size([2, 3])
값:
tensor([[1., 2., 3.],
[4., 5., 6.]])
'파이썬 > 파이토치 자연어처리' 카테고리의 다른 글
텐서의 인덱싱, 슬라이싱, 연결 (0) | 2022.02.08 |
---|---|
텐서의 연산 (0) | 2022.02.08 |
샘플과 타깃의 인코딩 (0) | 2022.02.08 |
지도학습이란? (0) | 2022.02.08 |
파이토치를 설치 해 봅시다. (0) | 2022.02.07 |