전체 글 (68) 썸네일형 리스트형 [논문 리뷰] Rethinking The Value of Network Pruning 리뷰 이 논문은 ICLR 2019에 accept된 논문으로, 그동안 논문들에서 당연하게 믿어져왔던 신념 두가지을 여러 모델과 실험을 통해 반박하고, 그 이유를 추측하는 논문이다. 여기서 두가지 신념이란 1. 매우 크고, over-parameterized된 모델을 사용하여 학습을 먼저 진행하는 것이 중요하다. 2. pruned된 구조와 그 weights이 최종 효율적인 모델을 생산해내는데 필수적이다. 이 논문에서는 이 두 신념을 반박하기 위해 "처음부터 작은 모델로, weight를 새롭에 initialize해서 학습"해서 더 좋은 성능이 나온 결과들을 제시했다. Pruning은 가지치기할 대상에 따라 Structure, Unstructure Pruning으로 분류가 되는데, 이번 논문에서는 Structure P.. [Pytorch] model layer, Sequential 변경하는 법 소개 딥러닝 모델 학습할 때에 여러가지 이유로 선언된 모델의 layer을 수정해야할 때가 있다. 만약 layer가 적다면 직접 변경해줄 수 있다. 그러나 모델의 layer가 많아 자동적으로 변경하고 싶거나, nn.Sequential이 사용되면 변경에 어려움을 느끼게 된다. 이번 포스트에서는 nn.Sequential이 존재하는 model의 layer 수정법을 작성하였다. 정리 모델의 멤버변수를 return 해주는 named_children()과 클래스의 모듈들을 return 해주는 _modules를 활용한다. 코드 class ToyNet(nn.Module): def __init__(self): super(ToyNet, self).__init__() self.layer1 = nn.Sequential( nn... [Pytorch] network(model) parameter 얻는 방법 소개 최근 경량화 스터디를 시작했다. 경량화 스터디에서 첫 주제는 Pruning이었다. Pruning은 가지치기 기법으로 모델에서 중요하지 않은 weight나 filter를 제거함으로써 계산량과 모델 크기를 줄여주는 방법이다. 중요한 weight나 filter를 찾아내기 위해 모델 내부의 parameter에 직접 접근하고, 변경도 해야해서 구현이 쉽지 않았다. 구현을 위해 여러 시도를 해보면서 알게된 점을 정리해보았다. 정리 0. state_dict를 사용하여 값을 변경하면 된다. 나의 목표는 parameter 참고와 변경이었으니, get_parameters와 state_dict를 적절히 활용하면 될 것 같다. 1. 모듈에 named_parameters / parameters, named_children.. Pruning 논문 리뷰 리스트 Rethinking The Value of Network Pruning - https://dbwp031.tistory.com/27 Dynamic Model Pruning with Feedback(DPF) - 2021.08. 작성중 Picking Winning Tickets Before Training By Preserving Gradient Flow - 2021.08.15 [논문 리뷰] Filter Pruning via Geometric Median for Deep Convolutional Neural Networks Acceleration 논문 자료: https://arxiv.org/pdf/1811.00250.pdf 해당 논문에서 사용되는 사진 및 자료를 사용하였습니다. ## New Concept norm-based criterion ## Abstract 기존 논문들은 "smaller-norm-less-important"라는 기준이 prune filter에 활용되었다. 그러나 이런 norm based criterion은 다음 2가지에 의해 effectiveness가 결정되는데 이 둘은 항상은 충족하지 않는다. 1) 필터들의 표준편차들은 커야한다. 2) 필터들의 minimum norm(최소 표준)은 작아야 한다. 이 논문에서는 이 두 문제에 상관없이 모델을 압축할 수 있는 새로운 filter pruning method(Filter Pruni.. Machine Learning - Quantization 양자화 양자화에 대한 논문 리뷰, 개념들을 정리할 예정이다. [LeetCode][Python3] 130. Surrounded Regions class Solution: def solve(self, board: List[List[str]]) -> None: """ Do not return anything, modify board in-place instead. """ if not board: return m = len(board) n = len(board[0]) def isEdge(row,col): if 0 [LeetCode][Python3] 116. Populating Next Right Pointers in Each Node """ # Definition for a Node. class Node: def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None): self.val = val self.left = left self.right = right self.next = next """ class Solution: def connect(self, root: 'Node') -> 'Node': if not root: return root queue = [] queue.append(root) while(len(queue)!=0): leftqueue = [] prenode = queue.pop(0) if prenode.le.. 이전 1 ··· 4 5 6 7 8 9 다음