본문 바로가기

전체 글

(10)
[Linux/SSH] 디렉토리 계정 권한 부여 및 파일 권한 변경법 디렉토리에 계정의 권한을 부여하는 법: chown -R test:test root_directory root_directory의 소유자와 소유그룹을 test로 변경한다는 뜻 -R을 붙이면 하위 디렉토리에 모두 적용됩니다
[Linux/SSH] NoWritableEnvsDirError: No writeable envs directories configured. /Users/(유저명)/minicomda3/envs 의 폴더에 대한 권한이 없는 경우에 발생 root 권한 ($ sudo su - root)으로 chmod 777 ~/envs 로 권한 부여 후 conda create -n (환경 명) python=(버전)
[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 모듈은 한 줄씩 읽고 처리하여 메모리와 시간 ..
[StackExchange 펌] CNN 오버피팅 방지와 배치 사이즈 https://datascience.stackexchange.com/questions/22494/convolutional-neural-network-overfitting-dropout-not-helping
[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..
[DL] Activation functions Insight ~ Swish와 Mish https://pnpsumml.tistory.com/4 [DL] Activation Functions Insight ~ 활성화 함수의 발전과 통찰 -1- 이 글에서는 활성화 함수 중 대표적인 것들을 살펴보고, 그 발전에 있던 insight들을 이해하며 활성화 함수의 역할과 이를 위한 특성을 이해해보려고 한다. 딥 러닝 모델에 있어 활성화 함수는 다 pnpsumml.tistory.com 1부 글에서 계단 함수부터 시작하여 ReLU에 이르기까지, 특히 ReLU의 특성에 집중하며 그 발전 과정과 그 발전을 불러온 문제점과 통찰을 살펴보았다. 대표적으로 음의 구간에서 작은 양의 기울기를 가져 음의 활성화 값을 보전하는 Leaky ReLU와, 여기에 지수 함수를 이용해 음의 구간 활성화 값이 발산하지 않도록 하는..
[DL] Activation Functions Insight ~ Sigmoid, tanh, ReLU 이 글에서는 활성화 함수 중 대표적인 것들을 살펴보고, 그 발전에 있던 insight들을 이해하며 활성화 함수의 역할과 이를 위한 특성을 이해해보려고 한다. 딥 러닝 모델에 있어 활성화 함수는 다음과 같은 역할을 가진다. - 모델에게 주어진 문제를 분석하는 데에 있어 비선형성을 더해 더 정확하고 일반화된 가설을 세우도록 한다. 퍼셉트론에서 사용된 이진 분류용 step function을 보면 최초 활성화 함수의 역할이 어떤 것에 초점을 맞추고 있는지 알 수 있다. 최초의 활성화 함수는 이진 분류를 위해 0, 1의 출력으로 구분하여 활성화 값을 분류하는 것이었다. 하지만 뉴런 층을 깊게 하여 기계 스스로 복잡하고 비선형성을 띄는 문제를 해결하는 딥 러닝 이론이 연구되면서, 이러한 이진 활성화 함수는 딥 러닝..
[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 레이어의 조건은 아래와 같다..
손실 함수(Cost / Loss Function) 정리 - MSE, CEE, RMSE, MAE 딥 러닝의 구현에 있어 모델은 오차율에 대한 지표를 통해 딥 러닝 모델이 스스로의 정확도를 판단하고 그 오차율을 줄이는(곧 정답률을 늘리는) 방향으로 내부 파라미터를 수정하는 방식으로 학습이 이루어진다. 즉, 모델에게는 '학습' 자체를 가능하도록 하는 지표로서의 오차 값을 계산할 함수가 필요하다. 이러한 지표의 역할을 하는 함수들을 통칭 비용 함수 또는 손실 함수(Cost function / Loss function)이라 한다. 손실 함수에는 대표적으로 MSE(Mean Squared Error), CEE(Cross Entropy Error)가 있으며, 딥 러닝 방법론을 제시하는 논문들에서 RMSE(Rooted Mean Squared Error), MAE(Mean Absolute Error) 등을 모델 성..