파이토치(PyTorch)의 주요 함수
torch.ones()
ones()는 1의 값을 갖는 tensor를 생성하는 함수이다.
💻 코드
a = torch.ones(2, 3)
print(a)
✔결과
tensor([[1., 1., 1.],
[1., 1., 1.]])
torch.zeros()
zeros()는 0의 값을 갖는 tensor를 생성하는 함수이다.
💻 코드
b = torch.zeros(2 ,3)
print(b)
✔결과
tensor([[0., 0., 0.],
[0., 0., 0.]])
torch.full()
full((행,렬,) 값)은 옵션으로 입력한 값으로 tensor를 생성하는 함수이다.
💻 코드
c = torch.full((2, 3), 10)
print(c)
✔결과
tensor([[10, 10, 10],
[10, 10, 10]])
torch.empty()
empty()는 초기화되지 않은 행렬을 생성하는 함수이다. , 그 시점에서 할당된 메로리에 존재하던 값들이 초기값으로 나타남
💻 코드
d = torch.empty(2, 3)
print(d)
✔결과
tensor([[-4.0245e-23, 4.3467e-41, -4.0245e-23],
[ 4.3467e-41, 4.4842e-44, 0.0000e+00]])
torch.eye()
eye()는 원하는 크기의 단위 행렬을 생성할 수 있다. 정방행렬이기때문에 행렬을 안써도 된다.
💻 코드
e = torch.eye(5)
print(e)
✔결과
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.]])
torch.arange()
arange()는 0부터 1씩 증가되어 지정된 값 이전까지 1씩 증가하는 텐서를 만드는 함수
💻 코드
f = torch.arange(10)
print(f)
✔결과
tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
torch.rand()
rand()는 정규 분포를 따르는 난수를 생성하는 함수이다.0과 1사이의 균일 분포에서 무작위로 추출한 난수를 생성하여 텐서(Tensor)를 반환한다.
- *size: 생성하려는 텐서의 크기를 나타내는 가변 인수로, 텐서의 차원 크기를 지정합니다. 예를 들어 torch.randn(3, 4)는 3x4 크기의 2차원 텐서를 생성합니다.
- out (optional): 결과를 저장할 출력 텐서로, 기본값은 None입니다. 만약 out 인수를 지정하면 해당 텐서에 결과가 저장됩니다.
- dtype (optional): 생성되는 텐서의 데이터 타입을 지정하는 인수로, 기본값은 None이며, 자동으로 추론됩니다.
- layout (optional): 생성되는 텐서의 레이아웃을 지정하는 인수로, 기본값은 torch.strided입니다.
- device (optional): 생성되는 텐서의 디바이스를 지정하는 인수로, 기본값은 None이며, 현재 사용 중인 디바이스로 자동으로 설정됩니다.
- requires_grad (optional): 생성되는 텐서의 기울기를 계산할 지 여부를 지정하는 인수로, 기본값은 False입니다.
💻 코드
torch.randn(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)
g = torch.rand(2, 3)
print(g)
✔결과
tensor([[0.9485, 0.6441, 0.6983],
[0.8729, 0.9700, 0.4163]])
torch.randn()
randn()는 정규 분포를 따르는 난수를 생성하는 함수이다. 정규 분포에서 무작위로 추출한 난수를 생성하여 텐서(Tensor)를 반환한다. 음수 가능
- *size: 생성하려는 텐서의 크기를 나타내는 가변 인수로, 텐서의 차원 크기를 지정합니다. 예를 들어 torch.randn(3, 4)는 3x4 크기의 2차원 텐서를 생성합니다.
- out (optional): 결과를 저장할 출력 텐서로, 기본값은 None입니다. 만약 out 인수를 지정하면 해당 텐서에 결과가 저장됩니다.
- dtype (optional): 생성되는 텐서의 데이터 타입을 지정하는 인수로, 기본값은 None이며, 자동으로 추론됩니다.
- layout (optional): 생성되는 텐서의 레이아웃을 지정하는 인수로, 기본값은 torch.strided입니다.
- device (optional): 생성되는 텐서의 디바이스를 지정하는 인수로, 기본값은 None이며, 현재 사용 중인 디바이스로 자동으로 설정됩니다.
- requires_grad (optional): 생성되는 텐서의 기울기를 계산할 지 여부를 지정하는 인수로, 기본값은 False입니다.
💻 코드
torch.randn(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)
h = torch.randn(2, 3)
print(h)
✔결과
tensor([[ 0.3869, -1.1985, 0.1404],
[ 0.5800, -1.1599, 2.5752]])
torch.arange().reshape()
arange()로 지정된 숫자까지의 텐서를 만든 후 .reshape()로 차원을 변경해주는 함수
arange(숫자) 입력한 숫자와 reshape()에 입력한 차원이 맞아야함.
💻 코드
# 광장히 중요한거
# 2 - 메트릭스
# 2, 4 행렬
# 개수가 맞아야함
i = torch.arange(16).reshape(2, 2, 4)
print(i)
✔결과
tensor([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
변수.premute()
premute() 함수는 모든 차원을 맞교환 할 수 있는 함수로 차원을 교환하면서 contiguous한 성질이 사라진다는 특징이 있다.
괄호 안에 인덱스들을 바꾸고자 하는 위치대로 적오주면 된다. 방향이 세로로 진행된다.
💻 코드
# 차원을 지정한 인덱스로 변환
# 2. 2. 4
# 방향이 세로방향으로 감
j = i.permute((2, 0, 1)) # 2, 2, 4 -> 4, 2, 2
print(j, j.shape)
✔결과
tensor([[[ 0, 4],
[ 8, 12]],
[[ 1, 5],
[ 9, 13]],
[[ 2, 6],
[10, 14]],
[[ 3, 7],
[11, 15]]]) torch.Size([4, 2, 2])
'머신러닝&딥러닝 > 이론' 카테고리의 다른 글
[머신러닝&딥러닝] 논리회귀(Logistic Regression) (0) | 2024.01.12 |
---|---|
[머신러닝&딥러닝] 파이토치 선형회귀-다중 선형 회귀 (0) | 2024.01.11 |
[머신러닝&딥러닝] 파이토치 선형회귀-단항 선형 회귀 (0) | 2024.01.10 |
[머신러닝&딥러닝] 파이토치(PyTorch) 기초 요소 (0) | 2024.01.08 |
[머신러닝&딥러닝] 앙상블(Ensemble) (1) | 2024.01.04 |