1. introduction 이미 학습된 network에서 중요도가 낮은 parameter를 제거하여 model의 size를 줄이고자 하는 작업 parameter의 중요도를 어떻게 정의해야 좋은지 생각해보는 것이 주요 연구 과제 weight의 L2 norm이 크면 기여도가 높은 parameter? gradient가 크면 중요도가 높은 weight? 혹은 둘을 합쳐서 평가할 수도 있고 또 다른 metric을 생각해볼 수도 있다 학습된 parameter의 일부가 제거된 모습 2. structured pruning parameter를 그룹 단위로 pruning하는 기법들을 모두 일컫는 말 그룹이라는 것은 channel단위일수도 있고 filter 단위나 layer 단위일수도 있음 필요없는 (0에..
1. elastic net 알고리즘 L1 regularization과 L2 regularization을 모두 사용한 regularization loss에 L1 term과 L2 term의 선형결합을 더해서 모델을 학습시키는 알고리즘 2. L1 , L2, elastic net 비교 L1, L2는 모두 계수 $\lambda$가 크면 클수록 parameter를 축소시킨다. L2는 parameter를 0으로 근사시키나 L1은 parameter를 완전하게 0으로 축소시키는 경향이 있다. L1은 무수히 많은 변수들이 있는데 영향력이 강력한 변수들은 별로 없다고 생각이 들면 대부분의 변수를 0으로 축소시켜 일부 변수만 선택하고자할때 유리함 그러나 L1은 covariate가 sample에 비해 충분히 많을 때 상관관..
예를 들어 resnet model에 대해 pretrained된 모델을 불러오고 import torchvision.models as models resnet = models.resnet152(pretrained=True) resnet.children()하면 resnet의 모듈을 불러올수 있다 마지막에 Linear() classifier layer가 있는데 얘를 제거하면 된다 modules = list(resnet.children())[:-1] # fully connected layer의 가장 마지막 layer 제거 이렇게 제거된 모듈을 nn.Sequential()로 sequential한 모델을 만들면 된다 import torch import torch.nn as nn import torchvision.mo..
1. hyperparameter와 parameter의 차이? hyperparameter는 학습과정에서 control할 수 있는 parameter value를 의미하고 학습 전에 사람이 직접 설정해줘야함 parameter는 모델이 학습과정에서 자동으로 배워나가는 값 hyperparameter tuning이란 이러한 learning 알고리즘에서 hyperparameter를 최적화하는 과정임 2. hyperparameter optimization model system의 매커니즘에 영향을 줄 수 있는 여러 요소들 batch_size, learning rate, loss, k-fold, dropout, regularization, optimizer, hidden layer 종류는 많음 hyperparameter..
1. 422 unprocessable entity front에서 axios로 back(fastapi)으로 데이터 요청을 보낼때, 볼 수 있는 에러 vue.js에서 title과 keyword를 text로 입력받고.. //vue.js 자동 작성 //중간 생략 async createAIReview () { axios .post(`http://127.0.0.1:8000/reviews/gpt`, { title: this.form.title, keyword: this.form.keyword, writer: this.form.writer, char: this.form.char }) .then(result => { console.log(result) this.form.content = result.review this..
1. model이 가지는 parameter 확인하기 model에 정의된 modules가, 가지고 있는 forward 계산에 쓰일 parameter tensor가 저장되어 있음 .state_dict(), .parameters() 함수를 이용하여 저장된 parameter를 볼 수 있음 .state_dict()는 무엇이 무엇의 parameter인지 확인 가능 .parameters()는 그냥 parameter를 출력해서 뭐가 뭔지 확인은 어렵다 parameter는 weight와 bias로 이루어져있다는 것을 알 수 있다 2. parameter tensor parameter는 tensor 기반의 class 그냥 tensor가 있고, grad를 가질 수 있는 parameter tensor라는 것이 있는거임.. 이거..