본문 바로가기

Python

(9)
[PyTorch] LayerNorm 레이어 정규화는 색칠되어 있는 값을 가지고 평균과 분산을 계산해 정규화를 수행하는 방법이다.  N, C, H, W shape을 가진 4차원 입력에 대해 위의 그림과 동일하게 LayerNorm을 적용하는 방식은 다음과 같다.import torchimport torch.nn as nnN, C, H, W = 10, 3, 32, 32normalized_shape = [C, H, W]x = torch.randn(N, C, H, W)layer_norm = nn.LayerNorm(normalized_shape=normalized_shape)x_norm = layer_norm(x) LayerNorm은 D차원의 normalized_shape을 입력으로 받아 입력의 마지막 D차원에 대해 평균과 분산을 계산해 정규화를 수행..
파이토치 재현성 import os import random import numpy as np import torch CFG = { 'IMG_SIZE':224, 'EPOCHS':5, 'LEARNING_RATE':3e-4, 'BATCH_SIZE':32, 'SEED':41 } def seed_everything(seed): random.seed(seed) os.environ['PYTHONHASHSEED'] = str(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.backends.cudnn.deterministic = True torch.backends.cudnn.benchmark = True seed_everything..
파이토치 GPU 설치 Windows 윈도우 환경에서 GPU 가속을 사용하려면 CUDA(Compute Unified Device Architecture)가 필요하다. CUDA란 NVIDIA에서 제공하는 소프트웨어로 GPGPU(General-Purpose computing on Graphics Processing Units) 기술을 지원하는 프로그램이다. CUDA를 지원하는 그래픽 카드의 사양은 다음 경로에서 확인할 수 있다. GPU Compute Capability: https://developer.nvidia.com/cuda-gpus#compute CUDA 환경을 구성할 수 있틑 시스템이라면 현재 사용하고 있는 GPU의 드라이버를 최신 버전으로 업데이트한다. NVIDIA 그래픽 카드 드라이버는 다음 경로에서 업데이트할 수 있다. NVIDI..
URL 데이터 다운로드 urllib.request.urlretrieve() 함수는 지정된 URL에서 파일을 다운로드하여 로컬 파일 시스템에 저장하는 데 사용됩니다. urllib.request.urlretrieve(url, filename=None, reporthook=None, data=None) url: 다운로드할 파일의 URL을 나타내는 문자열입니다. filename: 로컬 파일 시스템에서 저장할 파일의 경로와 이름을 나타내는 문자열입니다. 이 매개변수를 생략하면 다운로드된 파일의 내용이 메모리에 저장됩니다. reporthook: 다운로드의 진행 상황을 추적하기 위한 콜백 함수입니다. 기본값은 None이며, 다운로드 상태를 표시하는 데 사용될 수 있습니다. data: POST 요청의 데이터를 나타내는 바이트열입니다. 기본값..
random 정리 rand() 주어진 shape을 가진 array를 생성하며, [0, 1) 범위에서 균일한 분포를 갖는다. import numpy as np a = np.random.rand(5) print(a) b = np.random.rand(2, 3) print(b) [0.41626628 0.40269923 0.80574938 0.67014962 0.47630372] [[0.83739956 0.62462355 0.66043459] [0.96358531 0.23121274 0.68940178]] randint() [최소값, 최대값)의 범위에서 임의의 정수를 만든다. size 인수를 통해 shape을 지정할 수 있다. import numpy as np a = np.random.randint(2, size=5) print..
nonzero 주어진 어레이에서 0이아닌 요소의 인덱스를 어레이로 반환 non_zero_indices = np.nonzero([1,2,0,0,4,0]) print(non_zero_indices) (array([0, 1, 4]),)
info numpy의 특정 function의 사용법이 궁금할 때 사용하면 된다. print(np.info(np.add)) add(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) Add arguments element-wise. Parameters ---------- x1, x2 : array_like The arrays to be added. If ``x1.shape != x2.shape``, they must be broadcastable to a common shape (which becomes the shape of the output). out : nda..
size, itemsize np.ndarray의 메서드로 size는 어레이의 총 element 수를 반환, itemsize 각 요소의 길이를 bytes 크기로 반환 Q. How to find the memory size of any array null_vector = np.zeros(10) null_vector.size # 10 null_vector.itemsize # 8 print(f"{null_vector.size * null_vector.itemsize}bytes") 80bytes