토막 지식 #1
공부중에 찾아봤지만 간단한거라 한페이지 쓰기 귀찮은것들
num_workers
- GPU 최대한 갈구기 위해 데이터 로드시 [num_workers] 수를 지정한 만큼 서브 프로세스를 할당하여 작업진행
- 쓸데 없이 많이 설정하면 물리 코어 숫자상의 한계로 오버헤드 발생
- 멀티 GPU 환경 기준 [GPU 갯수] x 4 만큼 설정하면 좋다는 카더라~ (페북 누군가가 어디 써놨다더라~)
- 쓰레드를 안쓰는 이유는 파이썬 구조상 안된다 카더라~
Weight initialization
선 결론) 어차피 라이브러리에서 자동으로 해준다.
- Weight initialization이 딥 러닝 학습에 꽤 중요하다.
- 모두 0으로 설정하면 학습 효율이 떨어진다.
- 요즘 라이브러리 들은 선언시에 적당히 초기화 해준다.
- 굳이 지정한다면 이유는 옛날 관습, 원하는 초기화 분포가 있을 경우 등에 직접 지정할 수 있다.
RAdam
- Adam을 포함한 기존 Adaptiver learning rate를 이용하는 옵티마이저들은 ‘Bad local optima convergence problem’ 발생
- 학습 초기에 샘플이 매우 부족하여 adaptive learning rate의 분산이 매우 커지고 이에 따라 최적이 아닌 local optima에 너무 일찍 도달하여 학습이 거의 일어나지 않는 현상
- 기존엔 Warmup heuristic 방법으로 직접 학습률을 바꿔가며 극복해왔음 (하이퍼 파라미터가 추가된다는 단점)
- 이걸 자동으로 해주는것이 RAdam
- 수식을 포함해 좀더 자세히 보고싶으면 원문으로
matplotlib plot 'K.'
plt.plot(x_numpy,y_adam_numpy,'k.',ms=2,label='ADAM')
- 그래프 색을 바꿔보자는데 위 코드에서 'k.'의 '.'이 무엇인고
- k는 색상 '.'은 linestyle을 의미
- 선형 그래프를 점으로 찍어주겠다는것
- Hex 코드로 바꾸면 먹통됨 ex) '#FFFFFF.'
- 아래와 같이 바꿔서 해결
plt.plot(x_numpy,y_adam_numpy, color='#666666', marker='.', linestyle='none',ms=2,label='ADAM')
pytorch permute
- 축 변경
- transpose 확장판
- transpose(a, b) a, b는 축의 인덱스로 두개의 축을 맞 바꿔줌
- transpose는 단 두개의 축만 바꿔줄 수 있음
- permute(a, b, c, d, e ...) 각 인자는 축의 인덱스로 해당 축을 현재 입력순서대로 바꿔줌
x = torch.rand(16, 32, 3) # 0: 16, 1: 32, 2: 3
y = x.tranpose(0, 2) # [3, 32, 16]
z = x.permute(2, 1, 0) # [3, 32, 16]
cnn에서 사용되는 maxpool
- 커널 사이즈와 stride를 지정해서 이미지를 압축하는것
- 파라미터가 너무 많아지는 것을 방지하기 위해 사용
- 규칙에 따라 max pool, mean pool 등이 있으며 각각 필터안에서 가장 큰 값만 사용, 평균값을 사용하는 방식임
Author And Source
이 문제에 관하여(토막 지식 #1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ppskj178/토막-지식-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)