본문 바로가기

Coding/Python

(4)
[Python]JSON, CSV 1. JSON JSON: 파이썬의 딕셔너리 및 리스트 구조를 기본으로 하는 자료구조, 각 형태가 중첩으로 사용될 수 있다. .json 1차적 활용 예: import json import pprint # pretty print with open('file.json', 'r') as f: data = json.load(f) # data 변수에는 중첩된 dict/list 자료가 저장 # data 변수 출력 pp = pprint.PrettyPrinter(indent = 4) pp.pprint(data['parameters'][0]) 2. CSV CSV(Comma-Seperated Variables): csv 파이썬 내장 모듈과 pandas 모듈로 활용 가능, csv 모듈은 한 줄씩 읽고 처리하여 메모리와 시간 ..
[Torch] 사전 훈련된 모델 불러오기, 학습 여부 조정 import torchvision.models as models # 무작위 weight로 초기화된 모델 resnet18 = models.resnet18() vgg16 = models.vgg16() # 사전 훈련된 가중치로 초기화된 모델 resnet18 = models.resnet18(pretrained = True) vgg16 = models.vgg16(pretrained = True) # 모델 학습 여부 조정 - 가중치 고정 for param in resnet18.parameters(): param.requires_grad = False Reference http://www.yes24.com/Product/Goods/107664335 딥러닝 파이토치 교과서 - YES24 기본기에 충실한 딥러닝 파이토치..
[Torch/Tensorflow] 활성화 함수 구현과 where() 함수 유명하거나 제시된지 오래된 활성화 함수는 컴퓨팅 환경에서 생길 수 있는 여러 문제들이 발생하지 않도록 다 손을 보고 프레임워크에 구현되지만, 따끈따끈한 논문의 함수는 직접 구현해야 한다. 그런 경우 지수함수 연산의 역전파 과정에서 기울기가 무한대로 튀거나, 로그에 이상치가 입력되어 정의되지 않은 값을 리턴하거나, x 범위를 나누기 위해 텐서 단위 비교 연산을 하기 위해 몸을 비튼다거나 하는 문제가 생기기 쉽다. 이 때 마지막의 경우 사용할 수 있는 함수로 where() 함수가 있다. ELU를 예시로 들어 설명하겠다. 사용법 - 텐서플로우의 경우 tf.where(조건, True, False) - 토치의 경우 torch.where(조건, True, False) 위 ELU 함수를 구현해보면: (토치 기준) c..
[Tensorflow/Python] LSTM 레이어 사용 시 cuDNN 커널 사용 불가 오류 Tensorflow의 layers.LSTM 클래스는 API 상에서 최적의 속도로 학습이 가능하도록 구현되어있는데, 이 구현이 특정 조건에 국한되어 있다. 이를 변조시키면 레이어 생성 시 다음과 같은 경고 메시지를 출력한다. "WARNING:tensorflow:Layer lstm will not use cuDNN kernels since it doesn't meet the criteria. It will use a generic GPU kernel as fallback when running on GPU." 무시하고 실행하게 되면 최적화가 적용되었을 때에 비해 매우 느린 속도로 학습이 진행된다. 특별한 상황이 아니라면 조건을 만족시키도록 하자. 최적화 방식으로 구동되는 LSTM 레이어의 조건은 아래와 같다..