본문 바로가기

Python20

[PyTorch] Torchvision과 utils.data 이수안컴퓨터연구소의 파이토치(PyTorch) 기초 영상을 보고 정리한 내용입니다. ✅ Torchvision Torchvision은 대표적으로 전처리할 때 사용하는 메서드인 transforms를 제공하는 패키지이다. 이외에도 일반적으로 클래스를 따로 만들어 전처리 단계를 진행하며 다양한 전처리 기술을 제공한다. import torch import torchvision import torchvision.transforms as transforms transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize(mean=(0.5,), std=(0.5,))]) 예를 들어 DataLoader의 인자로 들어갈 transform을 미리 정의할 수.. 2022. 2. 23.
[PyTorch] nn과 nn.functional 이수안컴퓨터연구소의 파이토치(PyTorch) 기초 영상을 보고 정리한 내용입니다. ✅ torch.nn & torch.nn.functional PyTorch는 신경망(Neural Network) 생성, 학습을 위해 torch.nn 또는 torch.nn.functional 패키지를 제공한다. torch.nn 또는 torch.nn.functional 패키지를 통해 자동미분(autograd) 관련 작업을 진행할 수 있다. 이 두 패키지는 같은 기능을 제공하지만 방식이 조금 다르다. 결론만 말하자면 torch.nn은 attribute를 활용해 state를 저장, 활용하고 torch.nn.functional로 구현한 함수의 경우에는 인스턴스화시킬 필요없이 바로 사용이 가능하다. ✅ torch.nn torch.nn은.. 2022. 2. 23.
[PyTorch] CUDA와 자동미분 이수안컴퓨터연구소의 파이토치(PyTorch) 기초 영상을 보고 정리한 내용입니다. ✅ CUDA Tensor CUDA(Computed Unified Device Architecture)는 NVIDIA의 GPU 개발 툴이다. 파이토치는 .to() 메서드를 통해 텐서를 cpu 또는 gpu 등 어떠한 장치로도 옮길 수 있다. import torch x = torch.randn(1) print(x) print(x.item()) print(x.dtype) # output # tensor([-0.3513]) # -0.35131844878196716 # torch.float32 스칼라 값을 가지는 텐서를 하나 생성한 뒤 텐서를 살펴보면 위와 같다. -0.3513... 이라는 값을 가지고 있고 데이터 타입은 float3.. 2022. 2. 23.
[PyTorch] 텐서의 연산과 조작 이수안컴퓨터연구소의 파이토치(PyTorch) 기초 영상을 보고 정리한 내용입니다. ✅ operations 텐서의 연산은 덧셈, 뺄셈, 곱셈, 나눗셈의 사칙연산과 내적(dot product)이 존재한다. 사칙연산은 torch에서 제공하는 메서드나 기본 연산자인 +, -, *, / 을 사용한다. import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) ✔️ 덧셈 print(x + y) # output # tensor([[ 6, 8], # [10, 12]]) print(torch.add(x, y)) # output # tensor([[ 6, 8], # [10, 12]]) 덧셈은 + 연산자를 사용하거나 torch.add(.. 2022. 2. 22.
[PyTorch] 파이토치와 텐서 이수안컴퓨터연구소의 파이토치(PyTorch) 기초 영상을 보고 정리한 내용입니다. ✅ PyTorch 파이토치(PyTorch)는 딥러닝 프레임워크이다. 텐서플로, 케라스 등 다른 딥러닝 프레임워크들에 비해 파이토치는 파이썬에 가깝고 편한 인터페이스를 제공한다. import torch 파이토치의 구성요소는 다음과 같다. torch : 텐서를 생성하는 라이브러리 torch.autograd : 자동미분 기능을 제공하는 라이브러리 torch.nn : 신경망을 생성하는 라이브러리 torch.multiprocessing : 병렬처리 기능을 제공하는 라이브러리 torch.utils : 데이터 조작 등 유틸리티 기능을 제공 torch.legacy : 파이토치는 Torch로부터 포팅해온 코드이므로 기존 torch를 사용하.. 2022. 2. 22.
[NumPy] 배열 연산 - (1) 이수안컴퓨터연구소의 NumPy 한번에 끝내기 영상을 보고 정리한 내용입니다. ✅ 배열 연산 NumPy의 배열 연산은 벡터화 연산(vectorized)을 사용한다. 일반적으로 NumPy의 범용 함수(universal functions)를 통해 구현하며 배열 요소에 대한 반복적인 계산을 효율적으로 수행할 수 있다. ✅ 브로드캐스팅 브로드캐스팅(Broadcasting)은 NumPy가 산술 연산 중 다른 모양의 배열을 처리하는 방법이다. 특정 제약 조건에 따라 더 작은 array는 호환되는 모양을 갖도록 더 큰 array에 대해 브로드캐스팅된다. 즉, 산술 연산을 하고 싶은 두 피연산자 배열이 각기 다른 shape을 가지고 있어도 산술 연산을 할 수 있게끔 shape이 동일하게 맞춰진다. a1 = np.arra.. 2022. 2. 5.
[NumPy] 배열 변환 - (2) 이수안컴퓨터연구소의 NumPy 한번에 끝내기 영상을 보고 정리한 내용입니다. ✅ 배열 추가 ✔️ numpy.append() 배열의 끝에 값을 추가한다. numpy.append(arr, values, axis=None) arr: 값을 붙일 배열. values는 복사된 arr에 append된다. values : 이어붙일 값들. arr과 같은 shape을 가지고 있어야 한다. axis : 이어붙일 대상이 될 축. a2 = np.arange(1, 10).reshape(3, 3) b2 = np.arange(10,19).reshape(3, 3) print(a2) print(b2) # output # [[1 2 3] # [4 5 6] # [7 8 9]] # [[10 11 12] # [13 14 15] # [16 17.. 2022. 2. 2.
[NumPy] 배열 변환 - (1) 이수안컴퓨터연구소의 NumPy 한번에 끝내기 영상을 보고 정리한 내용입니다. ✅ 배열 전치와 축 변경 ✔️numpy.ndarray.T 선형대수학에서 전치행렬은 행과 열을 교환하여 얻는 행렬이다. 즉, 주대각선을 기준으로 행렬을 뒤집은 것과 같다. NumPy에서 전치행렬은 ndarray.T 혹은 ndarray.transpose()로 얻을 수 있다. (ndarray.T가 self.transpose()와 같다.) print(a2) print(a2.T) # output # [[1 2 3] # [4 5 6] # [7 8 9]] # [[1 4 7] # [2 5 8] # [3 6 9]] a2.T를 출력하자 주 대각선을 기준으로 전치된 행렬이 출력된 것을 확인할 수 있다. 이는 np.transpose(a2)와 a2.t.. 2022. 1. 24.
[NumPy] 배열 값 삽입/수정/삭제/복사 이수안컴퓨터연구소의 NumPy 한번에 끝내기 영상을 보고 정리한 내용입니다. ✅ 배열 값 삽입 ✔️ numpy.insert() 배열에 값을 삽입하는 것은 insert() 메서드를 통해 이루어진다. insert() 메서드는 배열의 특정 위치에 값을 삽입하며 추가할 방향을 axis로 지정한다. axis를 지정하지 않으면 1차원 배열로 변환한다. insert() 메서드는 원본 배열의 변경 없이 값이 추가된 새로운 배열을 반환한다. numpy.insert(arr, obj, values, axis=None) arr : 값을 삽입할 배열. obj : 정수 혹은 일련의 정수들. 값을 삽입할 index. values : array_like. 삽입할 값. axis : 옵션. 값을 삽입할 축. print(a1) b1 = .. 2022. 1. 24.