본문 바로가기

728x90

분류 전체보기

(129)
[Pytorch] Learning Rate Scheduler Learning Rate Scheduler란? 처음부터 끝까지 같은 learning rate(ex) 0.001)를 사용할 수도 있지만, 학습과정에서 미리 정의된 schedule에 따라 learning rate를 조정하는 learning rate scheduler를 사용할 수도 있다. 처음엔 큰 learning rate(보폭)으로 빠르게 optimize를 하고 최적값에 가까워질수록 learning rate(보폭)를 줄여 미세조정을 하는 것이 학습이 잘된다고 알려져있다. learning rate을 줄이는 보편적인 schedule 방식에는 시간에 따라 줄이는 time-based decay, 특정 epoch마다 줄이는 step decay와 exponential decay , learning rate를 줄였다 늘..
[sklearn] multi-classification 문제에서 f1 score 사용하기 sklearn 패키지의 metrics.classficiation_report를 통해 multi-class 각각에 대한 f1 score를 편하게 구할 수 있다 사용법 from sklearn import metrics print(metrics.classification_report(y_true, y_pred, digits=3)) 출력 예시 아래와 같이 각 클래스별 f1-score가 표로 깔끔히 출력되는 것을 확인할 수 있다 precision recall f1-score support class 0 0.50 1.00 0.67 1 class 1 0.00 0.00 0.00 1 class 2 1.00 0.67 0.80 3 accuracy 0.60 5 macro avg 0.50 0.56 0.49 5 weighted ..
[딥러닝/이미지 처리] EfficientNet 모델 개요 및 적용 EfficientNet 모델 개요 EfficientNet is deep learning architecture designed by Google(first introduced in Tan and Le, 2019) to tackle the problem of scaling Neural Networks (deciding how to best increase model size and increase accuracy). Given that there is a tradeoff between efficiency and accuracy in scaling CNNs, the idea by Google is to provide better accuracy and improve the efficiency of the m..
Transfer Learning(전이학습)이란? 실제로 충분한 크기의 데이터셋을 갖추기는 상대적으로 드물기 때문에, (무작위 초기화를 통해) 맨 처음부터 합성곱 신경망(Convolutional Network) 전체를 학습하는 사람은 매우 적다. 따라서, 대신, 매우 큰 데이터셋(예. 100가지 분류에 대해 120만개의 이미지가 포함된 ImageNet)에서 합성곱 신경망(ConvNet)을 미리 학습한 후, 이 합성곱 신경망을 관심있는 작업 을 위한 초기 설정 또는 고정된 특징 추출기(fixed feature extractor)로 사용한다. 이러한 전이학습 시나리오의 주요한 2가지는 다음과 같다: 합성곱 신경망의 미세조정(finetuning): 무작위 초기화 대신, 신경망을 ImageNet 1000 데이터셋 등으로 미리 학습한 신경망으로 초기화합니다. 학..
[sklearn] train_test_split 옵션 값 설명 test_size (default : 0.25): 테스트 셋 구성의 비율, train_size의 옵션과 반대 관계에 있는 옵션 값 shuffle (default=True) : split을 해주기 이전에 shuffle을 진행할지 여부 stratify (default=None) : classification 문제에서 지정한 stratify 값을 기준으로 class 비율(ratio)을 train / validation에 유지해줌 (class imbalance 해결) random_state: 매번 데이터셋이 변경되는 것을 방지하도록 사용한 랜덤 split 방식을 고정시킬 수 있음
Chapter 2. 퍼셉트론(인공 뉴런)이란? 아래 내용은 책 '밑바닥부터 시작하는 딥러닝 1권의 내용을 바탕으로 작성된 글입니다 1. 퍼셉트론이란? 신경망의 기원이 되는 알고리즘 다수의 신호를 입력으로 받아 하나의 신호를 출력함 신호가 흐른다(1)/안흐른다(0)의 2가지 값을 가질 수 있음 입력신호가 다음 뉴런에 보내질때는 각각 고유한 가중치가 곱해짐 가중치: 각 신호가 결과에 영향력을 조절하는 요소로 작용함(가중치가 클수록 신호가 그만큼 더 중요함을 뜻함) 2. 논리 회로 1) AND 게이트 : 입력이 둘이고 출력은 하나 2) NAND 게이트 : AND 게이트를 구현하는 매개변수(가중치, 임계치)의 부호를 모두 반전시킴 3) OR게이트 : 입력 신호 중 하나 이상이 1이면 출력이 1이 되는 논리 회로 퍼셉트론의 구조는 AND, NAND, OR 게..
[Pytorch] torch summary 모델 내 레이어에 따른 output shape, parameter 개수에 대한 정보를 표로 쉽게 볼 수 있도록 하는 파이썬 패키지 설치 아래와 같이 pip을 통해 설치 할 수 있다 pip install torchsummary 사용법 from torchsummary import summary summary(model, input_size = (channels, H, W)) input_size의 차원 수는 2/3/4차원 모두 가능 model은 GPU(cuda)에 있어야 사용 가능 결과 각 Layer 별 Output Shape, Parameter 개수에 대한 정보가 출력되는 것을 볼 수 있다 ---------------------------------------------------------------- L..
[pandas/reindex 에러] ValueError: cannot reindex from a duplicate axis 이 에러를 마주한 사람들은 분명 다음의 코드와 같이 dataframe을 reindex하는 과정에서 문제가 발생했을 것이다. new_df = df.set_index('previous_idx').reindex('new_idx') 해결방안 1) 다음의 코드를 넣어보고 결과를 출력해보자 unique는 중복한 값이 없는지 확인하는 함수이다 print(df['previous_idx'].is_unique) 혹시 위 출력의 결과가 False 인가? 2) 그렇다면 위 값에 중복된 값이 있기에 index로 설정하는 과정에서 문제가 발생하는 것이다. 중복된 값을 없애주면 문제가 해결된다 df = df.drop_duplicates(subset=['previous_idx']) 3) 중복된 값이 잘 사라졌는지 다시 확인 pri..

반응형