728x90
Pythorch를 모듈을 사용하여 tensor 객체 만드는 방법
tensor
numpy의 array와 같지만 GPU 계산에서 사용됨
설정 행렬
사용자가 원하는 값을 넣어 행렬을 만듦
Zeros(size)
0이 들어있는 행렬을 return 함
x = torch.zeros(5, 3)
x
tensor([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]])
x = torch.zeros(2, 5, dtype=torch.bool)
x
tensor([[False, False, False, False, False],
[False, False, False, False, False]])
Ones(size)
1이 들어있는 행렬을 returng 함
x = torch.ones(3,2)
x
tensor([[1., 1.],
[1., 1.],
[1., 1.]])
x = torch.ones(3,2,dtype=torch.bool)
x
tensor([[True, True],
[True, True],
[True, True]])
full(size)
사용자가 정의한 값이 들어있는 행렬을 return 함
torch.full((2,5), 10)
tensor([[10, 10, 10, 10, 10],
[10, 10, 10, 10, 10]])
eye(size)
주어진 크기의 대각 성분에 1을 넣어 return 함
x = torch.eye(10,5)
y = torch.eye(10,10)
x, y
(tensor([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]]),
tensor([[1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 1., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 1.]]))
랜덤 행렬
난수를 생성하여 tensor를 만듦, 매번 같은 난수가 나와야 한다면 torch.manual_seed()로 seed를 고정시켜야 함
rand(size)
0에서 1 사이의 난수를 return 함(0을 포함, 1은 미포함)
난수이기 때문에 출력값을 아래의 값과 다를 수 있음
torch.rand(2, 5)
tensor([[0.8340, 0.8848, 0.2792, 0.8940, 0.4891],
[0.6213, 0.0613, 0.7201, 0.7385, 0.4451]])
randn(size)
표준 정규분포를 따르는 난수를 return함 (평균 0, 표준편차 1)
torch.randn(2,5)
tensor([[ 0.9759, 1.9048, -0.4561, -1.1138, 1.9223],
[-0.4421, 0.3150, -1.7347, -0.1102, 0.8655]])
randint(low, high, size)
low ~ high 사이의 정수 난수를 return 함
torch.randint(0, 5, (2, 5))
tensor([[0, 3, 2, 2, 4],
[1, 1, 0, 2, 3]])
like(size)
입력으로 들어온 tensor와 같은 크기의 tensor를 return 함
empty는 주어진 size에 맞는 쓰레기(의미 없는) tensor를 return함
x = torch.empty(3,2)
torch.zeros_like(x)
torch.ones_like(x)
torch.full_like(x, 10)
torch.rand_like(x)
torch.randn_like(x)
torch.randint_like((x), 0, 5)
tensor([[0., 0.],
[0., 0.],
[0., 0.]])
tensor([[1., 1.],
[1., 1.],
[1., 1.]])
tensor([[10., 10.],
[10., 10.],
[10., 10.]])
tensor([[0.3295, 0.8297],
[0.8512, 0.4344],
[0.4614, 0.9267]])
tensor([[-0.9329, 0.4655],
[ 0.9701, 1.2718],
[ 1.1560, 0.1633]])
tensor([[2., 0.],
[2., 4.],
[1., 4.]])
728x90
'Python > numpy & Pytorch' 카테고리의 다른 글
[Pytorch] Tensor shuffle, 텐서 랜덤 섞기 (0) | 2023.03.16 |
---|---|
[Pytorch] tensor 합치기는 방법 cat(), stack() (0) | 2023.03.14 |
[Numpy] random 서브 모듈 (0) | 2022.08.01 |
[Numpy] 데이터 생성 (0) | 2022.07.30 |
Pytorch Cuda CuDNN 설정하기 (0) | 2021.11.06 |