본문 바로가기

오늘의 코딩

(30)
pytorch transfer learning 모델 설정 중 에러.. 1. Traceback (most recent call last): File "/home/pirl/PycharmProjects/untitled2/SVHN_transfer_test.py", line 285, in num_epochs=25) File "/home/pirl/PycharmProjects/untitled2/SVHN_transfer_test.py", line 189, in train_model loss = criterion(outputs, labels) File "/home/pirl/PycharmProjects/untitled2/venv/lib/python3.6/site-packages/torch/nn/modules/module.py", line 532, in __call__ result = sel..
[pytorch] 데이터 불러오기 1. 데이터셋 불러오기 모델 학습에 사용할 데이터셋을 불러오고, 변형한다. torchvision.datasets.데이터셋 명( root, train = True , transform = None, target_transform = None, download = False) #데이터셋 종류 MNIST, Fashion-MNIST, KMNIST, EMNIST, QMNIST, FAKEDATA, COCO, LSUN, IMAGENET, CIFAR, SVHN 등 #파라미터 root - 데이터셋을 저장할 디렉토리 위치 train - 다운받을 데이터셋 종류(train/val/test) download - True로 할 경우, 인터넷에서 데이터셋을 root 경로에 다운받는다. 데이터가 있을 경우, 재다운하지 않는다. tr..
[python] 쓸모있는 외장함수 다루기 os 편 환경 변수나 디렉터리, 파일 등의 OS 자원을 제어하는 패키지 os 프로그램을 만들다보면 폴더 안의 파일을 모두 끌어와야 하는 경우도 있고, 폴더를 새로 만들어서 새로운 데이터를 저장해야 하는 경우도 왕왕있다. 물론 하나하나 수동으로 하는 방법도 있지만 귀찮다. 이럴때 우리를 도와주는 python의 기본적인 외장함수가 os이다. #현재 경로 구하기 PATH_here = os.getcwd() #특정 경로에 존재하는 파일과 디렉터리 목록을 리스트 형태로 반환 PATH_hers_list = os.listdir(PATH_here) # 알맞은 패턴으로 경로를 만들어줌 os.path.join(path1,path2) # 주어진 경로의 파일이 있는지 확인 os.path.exists(filename) #디렉터리 위치 변..
[pytorch] require_grad, zero_grad(), no_grad() 차이 Autograd-자동미분 grad가 붙은 함수는 대부분 gradient 계산에 사용한다고 보면 된다. pytorch에서는 신경망에서 역전파 단계의 연산을 자동화하는 자동미분 기능을 제공한다. 신경망의 순전파 단계를 지나 역전파 과정에서 autograd 기능을 이용하여 변화도(gradient)를 쉽게 계산할 수 있다. 구현은 다음과 같다. #loss 는 Tensor 연산을 사용하여 계산한 손실값으로 (1, ) 형태의 Tensor로 정의한다. loss.backward() 이 함수는 backpropagation을 수행하여 x.grad에 변화도를 저장한다. require_grad require_grad = True로 설정하면 역전파 중에 이 Tensor들에 대한 변화도를 계산하라는 의미가 된다. 계산한 변화도는..
[pytorch] 맨땅에 transfer learning 하기 1 작업환경 python 3.x pytorch 1.4.0 torchvision 0.5 0. Transfer Learning 이란? Transfer Learning(전이 학습) 이란 특정 환경(모델, 데이터셋)에서 파라미터 값을 훈련시킨 Neural Network를 내가 원하는 상황(데이터)에 맞게 리뉴얼하는 것이다. Transfer Learning을 하는 이유는: (1) 적은 데이터셋을 이용하여 모델을 학습시킬 수 있고 (2) 대부분의 경우, Transfer Learning한 모델이 처음부터 쌓은 모델보다 더 성능이 좋으며 (3) 훈련에 드는 시간을 절약할 수 있기 때문이다. Transfer Learning은 특정 데이터셋에 맞춰 학습이 완료된 모델의 파라미터를 이용하여 내가 원하는 데이터셋에 이용하는 것인..
[4강] 좋은 훈련 세트 만들기 : 데이터 전처리 1. 누락된 데이터 제거.대체하기 일반적으로 누락된 값은 NaN이나 NULL으로 채워짐. (1)누락된 데이터 확인하기 : .isnull 메서드: 셀이 수치값을 담고 있다면 0 누락되어있다면 1이 채워진 DataFrame을 반환. 데이터프레임.isnull() (2)누락된 데이터 제외 dropna 메서드: df.dropna(axis=0/1) # 0:행삭제 1:열삭제 df.dropna(how='all') # 모든 열이 NaN일 때만 행을 삭제합니다. df.dropna(thresh=4) # 실수 값이 4개보다 작은 행을 삭제합니다 df.dropna(subset=['C']) #특정 열에 NaN이 있는 행만 삭제합니다(여기서는 ‘C’열). (3)누락된 값 대체 Imputer 클래스 -평균으로 대체함 Imputer(..
[T아카데미] Scikit-Learn으로 다지는 머신러닝 기초 https://tacademy.skplanet.com/live/player/onlineLectureDetail.action?seq=158
머신러닝을 위한 python 워밍업 1강 https://www.edwith.org/aipython/lecture/22951/ [LECTURE] Overview : edwith Pythonic Code Overview 학습 목표 Pythonic Code는 간단하게, 다른 사람의 코드를 잘 이해하기 위해서 파이썬 특유의 문법을 활용하여 효율적으로 코드를... - 커넥트재단 www.edwith.org Split & Join 문자열을 나누고 합친다. colors1 = ['red','blue','yellow','green'] result1 = '' for s in colors1: result1 += s result1 >>'redblueyellowgreen' 이렇게 해도 되지만... 더 짧게 코딩할 수도 있다! 바로... .join() 을 이용해서! ''..