배운 점
키워드
- Kaiming Initialization: 논문 리뷰해볼 것
인사이트
- GPU 가속 코드를 작성할 때, GPU에 넣을 객체와 아닌 객체를 잘 분리해야 한다.
- torch.nn.parameter.Parameter는 제네레이터 반환한다.
.item()
은 스칼라 값을 가져오고 .data
는 텐서 객체(torch.Tensor)를 반환한다.
- 학습 과정에서 optimizer의 기울기를 0으로 초기화하는 코드인
optimizer.zero_grad()
의 위치는 생각보다 중요할 수 있다. 예를 들어 여러 개의 optimizer를 사용하는 경우 optimizer 업데이트 후에 기울기를 초기하면 그 이후 optimizer에 대해서 동작하지 않을 수 있다.
맞는 코드
for inputs, targets in train_data_loader:
optimizer_1.zero_grad()
optimizer_2.zero_grad()
...
optimizer_1.step()
optimizer_2.step()
틀린 코드
for inputs, targets in train_data_loader:
optimizer_1.step()
optimizer_1.zero_grad()
...
optimizer_2.step()
optimizer_2.zero_grad()
- 개념, 기술을 프로젝트에 도입할 떄 "왜?"인지 생각해보자.
"방법을 위한 문제를 찾지 말고, 문제를 위한 방법을 찾아라!" - 멘토님의 지도교수님의 말씀
→ 개인적으로 생각하기에 '남들이 다 쓰니깐, 그게 좋다고 들어서'와 같이 판단 없이 휩쓸리는 것을 경계하자는 뜻 같음!
좋았던 점
- 슬랙 알림 봇을 만들었다. 시간을 잘 못 설정했지만, 슬랙에 이런 기능이 있는 것을 처음 알게 됐다. 외부 확장 기능도 만들 수 있지 않을까?
- 평일 일과가 여유롭게 됐다. 추가로 더 공부할 여유가 있어서 좋았다.
- 마스터 클래스에서 담론의 의미를 들었다. 좋은 소스인 듯.
- 다른 사람들의 질의응답에서도 많은 것을 배웠다.
- 멘토링 대만족이었다. 멘토님이 정말 많은 인사이트와 정보를 주셨다. 너무 좋아서 혼자만 간직하고 싶을 정도.
아쉬운 점
- 1주차 할 일이 다 끝나고 오후가 되니 집중력이 떨어졌다. 다행인 점은 점점 집중하는 시간이 늘어난다는 점이다.