세 번째 미션인 PyTorchKorea 튜토리얼 레포에 오타 수정 PR을 수행했다.

https://github.com/PyTorchKorea/tutorials-kr/pull/509

 

beginner/basics/data_tutorial 오타 수정 by updaun · Pull Request #509 · PyTorchKorea/tutorials-kr

라이선스 동의 변경해주시는 내용에 BSD 3항 라이선스가 적용됨을 동의해주셔야 합니다. 더 자세한 내용은 기여하기 문서를 참고해주세요. 동의하시면 아래 [ ]를 [x]로 만들어주세요. 기여하기

github.com

 

멘토님께서 2주차 미션에 대한 공통 피드백을 전달해주셨다.

멘티 중의 상당수가 번역하면서 놓쳤던 부분들에 대해 언급해주셨다.

차주 미션을 제공하시며 오타를 쉽게 찾기 위해 hunspell 이라는 패키지를 소개해 주셨다. 

sudo apt-get install hunspell

 

특정 파일에서 한글 오타 찾기

hunspell -l 파일 | sort | uniq

 

여러 파일에서 한글 오타 찾기

hunspell -l *.py *.rst | sort

 

멘토님의 가르침을 따라 hunspell을 활용하여 오타 찾기를 시도했다.

파이썬 파일 하나만 시도해봐야지 했는데 아니나 다를까 오탈자가 눈에 보였다.

오탈자를 수정하면서 그 문단을 다시 한번 읽었는데 문맥이 이상한 부분도 발견하여 두 군데를 수정한 PR를 작성하게 되었다.

 

이번 3주차는 오프라인으로 미팅을 갖는다고 하셨다.

정말 참여하고 싶었는데 최근 코로나 재유행으로 외부 이동을 줄이기로 했기 때문에 갈 수 없었다.

온라인으로 참여했는데, 현장에 가서 함께했다면 더 좋았을 것 같다. 

멘티분들과 자유롭게 생각을 나누는 자리였는데, 최소 1회는 오프라인 미팅을 참여해야해서 언젠간 멘토님들 뵙게 될 것 같다.

 

중간보고서 작성을 하고 Challenges 기간이 종료된다.

그간 한 작업 내용들을 날짜순으로 정리했다.

Masters 기간에 번역도 열심히 하고 조원들과 의견 주고 받으면서 끝까지 달려야겠다!!

두 번째 미션인 연습용 레포지토리에 페이지 번역에 대한 PR 올리기이다.

https://github.com/hyoyoung/22-tutorials-ex/pull/23

 

prototype_source/skip_param_init 번역 (#21) by updaun · Pull Request #23 · hyoyoung/22-tutorials-ex

관련 이슈 번호 이슈 번호: #21 PR 종류 오탈자를 수정하거나 번역을 개선하는 기여 번역되지 않은 튜토리얼을 번역하는 기여 공식 튜토리얼 내용을 반영하는 기여 위 종류에 포함되지 않는 기여

github.com

 

1주차 오리엔테이션을 기반으로 연습용 레포지토리에 번역을 해서 Pull Request를 올렸다.

파이토치 튜토리얼만 해도 멘티가 15명 정도가 되어 4명씩 조를 편성하게 되었다.

나는 C조에 편성되었고, C조는 prototype_source에서 파일을 하나 정해서 번역을 시도하는 것이었다.

 

파이토치 튜토리얼을 정독하지 못해서 그럴 수도 있지만, 생소한 것들이 많아서 쉬운 내용을 찾아서 번역을 시도했다.

그래도 쉬운 내용인 파라미터 초기화 건너뛰기에 대해서 진행했다.

 

번역을 해야하는 부분이 있고, 영어로 표기해야할 부분들이 있었다.

최대한 자연스럽게 번역하기 위해 여러 번 읽어보면서 문장을 수정했다.

번역기도 많이 사용했는데, 영어를 먼저 일본어로 번역하고 그 이후에 영어로 번역하면 자연스럽다고 들어 그렇게 시도했다.

 

다소 부족한 번역이었는데 PR을 올렸더니, 잘잘한 실수들을 C조 팀원에서 리뷰를 해주셨다.

번역을 혼자서 하는 것이 아니라 팀원분들의 좋은 의견을 들을 수 있어서 좋았다. 

 

OSSCA는 Challenges 프로그램과 Masters 프로그램으로 나뉘는데, 지금은 Challenges 프로그램 중에 있다.

본격적으로 오픈소스 기여를 하기 전 준비 단계인 것이다.

내가 번역한 페이지를 Masters 기간에 PyTorchKorea/tutorial-kr 레포지토리에 PR을 올릴 수 있을 것 같다.

첫 번째 오픈소스 기여라 기대가 된다.

PyTorchKorea/tutorial-kr 빌드 성공한 화면이다.

 

멘티로 선정된 후 디스코드 채널에 초대되었다.

7월 9일 온라인 발대식이 진행되었다. 팀이 많다보니 3일 동안 나눠서 진행했는데, 파이토치 튜토리얼 번역은 7월 9일 그룹에 포함되어 진행되었다.

개인 일정이 있던 터라 메타버스 플랫폼 게더타운? 에 로그인만 하고 들어가 있었다. 많은 이야기가 오갔을 것 같은데 듣지 못해 아쉬웠다.

멘티들을 위해 공통 교육이 오픈되었는데, Github 사용 및 Git 사용 기초에 대해서 강의가 오픈되었다. 아쉽도 이것 역시 개인 일정이 있던 터라 수강하지 못했다. 특강을 해주기 때문에 오픈소스 기여하는 것에 주저하는 사람들이 있다면 이 점을 알고 지원하게 되면 좋겠다.

 

파이토치 튜토리얼 팀은 매주 일요일 밤 10시에 주간 회의를 진행하기로 했다. 이 내용은 디스코드에서 투표를 통해 다수결로 결정되었다. 주말이긴 하지만 부담되지 않는 시간이라 좋았다.

첫 번째 모임 7월 17일 전까지 PytorchKorea/tutorial-kr repository를 빌드해보는 것이 미션이었다.

멘토분들이 일부러 정보를 최소화하고 미션을 주셨다고 했다.

평소 오픈소스를 세팅한 것처럼 Windows에 바로 시도하다가 make 라는 명령어 세팅부터 막혀 다른 방법을 찾아야 했다.

wsl을 활용하면 하이퍼 가상환경으로 Windows에 Ubuntu 환경을 설치할 수 있었다.

에러가 상당수 발생했지만, 구글링하여 극복하고 빌드를 성공하게 되었다.

 

빌드를 할 때, make html-noplot 이라는 명령어로 빌드를 진행했는데, 멘토님이 저 명령어로 빌드를 하라고 해서 그렇게 했지만, OT 때 알고보니 파이토치 튜토리얼은 데이터를 기반으로 그래프를 제공하는데 noplot 아닌 기본 빌드를 하면 GPU 2장으로도 꽤 오랜 시간이 걸린다고 하셨다.

빌드를 마치고, 7월 17일에 첫번째 주간회의를 진행하게 되었다.

이번 프로젝트는 어떤 식으로 진행되는지, 저번 년도에 아쉬웠던 점을 기반으로 올해의 진행방향을 알려주셨다.

많은 양을 번역하지 않더라도, 좋은 기억이 남는 한 줄의 번역이라는 멘트가 기억에 남는다.

번역에 대해서 깊게 고민하지 않았었는데, 생각보다 고려해야할 것들이 많이 있어서 신기했다.

번역과 기여하는 방법에 대해서 알려주셨고, 다소 생소한 개념들이 등장해서 걱정이 조금 되었다.

 

다음 주차 미션은 연습용 레포지토리에 번역을 한번 해보는 것이다.

https://github.com/hyoyoung/22-tutorials-ex

 

GitHub - hyoyoung/22-tutorials-ex

Contribute to hyoyoung/22-tutorials-ex development by creating an account on GitHub.

github.com

연습용 레포지토리는 멘토님께서 만들어주셨다.

멘토분들이 전문가분들이라 OSSCA가 정말 좋은 경험이 되고, 성장하는 것에 많이 도움을 받을 수 있을 것 같다.

 

유튜브에서 개발에 대한 이야기를 해주는 채널을 구독하고 틈틈히 시청하면서 정보를 얻고 있습니다.

그 중에 큰돌의 터전이라는 채널이 있는데, 인프런 및 유튜브에서 CS 강의와 알고리즘으로 유명하신 분이죠!

그 분의 채널을 구독하면서 있다가 한 영상을 보게 되었습니다.

https://youtu.be/WjDtJ4UnWDs

 

오픈소스에 컨트리뷰터가 되는 것은 개발자로서 좋은 기회라고 생각했습니다.

전부터 해보고 싶었지만 도저히 엄두가 나지 않았었습니다.

정보통신산업부(NIPA)가 주관하여 2022 오픈소스 컨트리뷰션 아카데미를 진행한다는 사실을 알고 지원할 수 있었습니다.

 

기존 경험이 없고 난이도도 높아 보였습니다. 준비가 부족했던 터라 떨어질수도 있다는 생각으로 지원했습니다.

다행히도 선정되어 활동할 수 있는 기회를 얻게 되었습니다!

새로운 개발 모임에서 실력 있는 개발자 분들을 많이 만날 수 있는 기회라고 생각했습니다.

 

지난 번 데이크루를 했던 것처럼 주차별로 활동 내역을 기록해보려고 합니다!

제가 지원한 분야는! 파이토치 튜토리얼 번역!

https://github.com/PyTorchKorea/tutorials-kr

 

GitHub - PyTorchKorea/tutorials-kr: 🇰🇷파이토치에서 제공하는 튜토리얼의 한국어 번역을 위한 저장소

🇰🇷파이토치에서 제공하는 튜토리얼의 한국어 번역을 위한 저장소입니다. (Translate PyTorch tutorials in Korean🇰🇷) - GitHub - PyTorchKorea/tutorials-kr: 🇰🇷파이토치에서 제공하는 튜토리얼의 한국어

github.com

 

지원한 이유는 인공지능 개발자로서 현존 가장 유명한 프레임워크인 파이토치를 항상 가까이 해야한다는 생각이었고, 공부에 강제성을 부여하기 위해서 도전하게 되었습니다.

번역은 한 번도 해보지 못 했지만, 번역기의 도움을 받아 도전해볼 수 있을 것 같았습니다.

오픈소스에 기여하는 첫 번째 과정이고, 이를 시작으로 더 많은 오픈 소스에 기여할 수 있게 되면 좋겠습니다.

 

\

[느낀점]

  • 혼자서 공부했다면 의지가 약해질 수 있었지만, 데이크루 2기를 통해서 만나게 된 POS 팀원들과 함께 Opencv를 공부할 수 있어서 책임감을 가지고 공부할 수 있었다. 공부의 강제성을 부여하는 것이 나태해지지 않는 방법인 것 같다.
  • OpenCV에 생각보다 다양한 함수를 제공하고 있다는 것을 알 수 있었다. 미니 프로젝트를 하면서 전에 실험해보고 싶었던 부분이었던 좌표 정규화와 벡터 정규화의 성능 차이를 확인하기 위해 실험을 해 볼 수 있었다.
  • 데이콘 서포터즈로 활동하면서 데이콘 홈페이지에 좀 더 자주 접속하게 되고 관심을 더 가질 수 있었다. 데이콘을 자주 접속하게 되면서 대회도 참여해보게 되고, 예제 코드를 보면서 공부를 할 수 있었다. baseline이 정말 자세히 잘 되어 있어서 사용하기 편리했다. 데이콘 관계자 분들이 페이지 홍보 활동을 위해서 많이 신경을 많이 쓰고 계신 것 같다.
  • 데이콘에서 제공해주신 활동비로 대전에서 1번, 서울에서 1번 팀원들을 대면으로 만날 수 있었다. 그 덕분에 훨씬 더 친해질 수 있었고, 게시물 작업과 프로젝트도 수월했던 것 같다. 생각보다 지원금이 넉넉해서 부족함 없이 사용할 수 있어서 좋았다.
  • 데이크루 활동에서 만난 인연을 이어 데이터 분석 프로젝트인 데이터 멘토링에도 서류 지원하게 되었다. 만약 선정된다면, 다른 프로젝트도 같이 해보고 또 만나서 대면으로 미팅할 수 있을 것 같다.
  • 앞으로도 공부의 강제성을 부여하기 위한 개발자 소모임을 이어나가고, 지원 사업을 열심히 참여해서 새로운 개발자 관계도 만들어야겠다. 개발자로서 함께 성장할 수 있도록 서로에게 좋은 영향을 줄 수 있을 것이다.

[회의일시]

- 2022년 06월 18일 오후 16시30분 ~ 18시00분까지 비대면 회의 진행

 

[활동 내용]

- 두 번째 미니프로젝트 준비 회의(UNet Semantic Segmentation)

- 3가지 실험과 게시글 작성

 

[데이콘 12주차 콘텐츠]

https://dacon.io/codeshare/5185

 

[🔥포스🔥] Segmentation Modeling(1) (U-Net, OpenCV 적용)

 

dacon.io

https://dacon.io/codeshare/5186

 

[🔥포스🔥] Segmentation Modeling(2) (ResU-Net, OpenCV 적용)

 

dacon.io

https://dacon.io/codeshare/5197

 

[🔥포스🔥] Segmentation Modeling(3) (RPA-ResU-Net)

 

dacon.io

 

[느낀점]

- 데이크루 마지막 활동으로 두 번째 프로젝트인 Segmentation 실험을 진행하였다. 데이터는 2018 Data Science Bowl 이라는 세포핵 데이터를 활용하여 Segmentation Task를 진행하는 것이다. 정환님께서 Unet Network를 pytorch로 baseline 코드를 작성해주셔서 코드를 한 줄 한 줄 읽어보며 실험을 진행했다.

- 주요 실험 내용은 데이터 전처리를 전혀 하지 않은 것과 Unet 논문에 있는 전처리를 적용하는 것, OpenCV를 활용하여 전처리를 적용하는 것의 성능 비교를 한 것이다. 우리팀이 OpenCV를 주로 공부한 팀이라 최대한 프로젝트에 OpenCV를 녹여서 해보려고 했는데, 결과는 좋지 않았다. 의외로 전처리를 하지 않을 것이 성능이 높았다.

- 아마도 학습데이터를 검증데이터로 분리하여 사용하면서 학습데이터와 큰 차이가 발생하지 않았지만, 테스트 데이터가 달랐다면 실험 결과가 달라졌을 수도 있을 것이다. 캐글 데이터에서 Test 셋은 있었지만, 성능 측정을 위해서는 정답 데이터가 필요했는데, 라벨링이 안 되어 있어서 학습데이터에서 검증데이터를 분리하여 실험할 수 밖엔 없었다. 

- 바쁜 와중에 팀장님이 정말 고생해서 게시글을 작성해 주셨다. 팀장의 깜냥이란... 역시 듬직한 팀장님이었다. 주에 1개의 게시글을 작성하다가 마지막 주에 몰아서 3개의 게시글을 작성하니 역시 분량이 상당했다. 실험 과정은 비슷했지만, 실험 하는 과정에서도 많은 시간이 소요되었다.

- Residual Unet 게시글의 초안을 작성했는데, 팀장님 기대에 못 미쳐서 아쉬운 소리를 하셨다. 팀장님도 마음이 급했기 때문에 그랬을 것이다 생각하면서도 내가 더 꼼꼼하게 작성했어야 했다는 생각을 하게 된다. 내가 팀장을 했을 때와 다른 사람이 팀장을 했을 때, 다른 태도를 취해선 안된다라는 생각을 하게 된다. 

- 데이크루 활동이 끝나고 데이터 멘토링 활동을 다같이 신청했다. 이번에도 팀장은 아니지만 팀장의 마음으로 팀을 리드하고 좋은 영향을 줄 수 있도록 노력할 것 같다. 기회가 된다면 데이터 멘토링도 게시글을 작성해서 블로그에 활동 일지를 써봐야겠다.

 

[해야할 것]

- 데이크루 2기 수료

- 데이터 멘토링 신청

 

[회의일시]

- 2022년 06월 11일 오후 16시30분 ~ 18시00분까지 비대면 회의 진행

 

[활동 내용]

- 9장 머신러닝 세미나 발표(SVM 및 HOG)

- 데이크루 이후 활동 계획, 데이터 멘토링 신청

- 두 번째 미니프로젝트 준비 회의(UNet Semantic Segmentation)

 

[데이콘 11주차 콘텐츠]

https://dacon.io/codeshare/5146?page=1&dtype=recent&fType 

 

[🔥포스🔥] 8편. OpenCV과 머신러닝편(1)(K-means, K-NN, SVM)

 

dacon.io

 

[느낀점]

- 데이크루가 거의 마지막 주차가 다 되었다. 이번 주 콘텐츠로 내가 세미나 발표를 한 SVM 내용이 들어가게 되었다. SVM도 고전적인 방법일 수 있지만 종종 사용되는 것 같아서 이번 기회에 리마인드 한다는 생각으로 열심히 공부하게 되었다. 추후 다른 프로젝트에 충분히 응용해 볼 수 있을 것 같다.

- 시험 기간과 함께 다른 일정들이 있어 팀원들이 많이 모이지 못했지만, 세미나를 성공적으로 발표하고 최종적으로 콘텐츠를 보완하여 팀장님께 전달했다. 우리 팀원 모두 바쁜 시간을 잘 쪼개서 만나고 매주 게시글을 올려야 한다는 그런 하나의 목표를 가지고 공부를 하니 확실히 혼자서 하는 공부보다 책임감을 가지고 하게 되고 효율적이기도 한 것 같다.

- 3기 팀장을 해보려고 했지만, 취업을 위해서 좀 더 시간 투자를 해야할 것 같아 다음 기회로 미루기로 했다. 취업하고 자리를 잡으면 언젠간 팀장으로 역할을 잡고 같이 공부할 사람들을 모아서 해도 좋을 것 같다. 최근에는 정말 좋은 공부 프로그램들이 많다. 새롭게 만난 사람들과 한 번 더 도전할 수 있을 것 같아서 기대가 된다.

- 데이크루가 거의 끝이 났다. 그러면서 처음하기로 했던 OpenCV 책은 정독은 아니어도 한 번 훓어볼 수 있었고, 미니 프로젝트를 한 것이 기억에 남는다. 이번 주 일요일까지 마지막 게시물을 작성할 예정인데, 최대한으로 콘텐츠를 쥐어짜 내서 좋은 내용으로 마무리 할 수 있으면 좋겠다.

- 이번에 데이크루를 함께 해준 우리 POS 팀원들에게 고맙고 감사하다. 미니 프로젝트 하면서 내가 원하는 결과를 도출하기 위해 조금 귀찮은 것도 많이 요청했는데 팀원들이 잘 따라줘서 의미 있는 결과를 도출할 수 있었다. 나중에 면접에서 데이크루에 대해서 이야기한다면 미니프로젝트 한 내용을 말할 수 있을 것 같다. 

 

[해야할 것]

- 두 번째 미니 프로젝트 실험 정리, 코드 보완

 

 

이제 마지막 POS팀의 콘텐츠가 기재됩니다!

많은 관심 부탁드립니다!! 

 

[회의일시]

- 2022년 06월 04일 오후 15시00분 ~ 21시00분까지 대면 미팅 진행(서울)

 

[활동 내용]

- 9장 머신러닝 세미나 준비(SVM 및 HOG)

- 데이크루 이후 활동 계획

- 취업정보 및 공모전 정보 공유

 

[데이콘 10주차 콘텐츠]

https://dacon.io/codeshare/5106

 

[🔥포스🔥] 6편. OpenCV 영상매칭과 추척편

 

dacon.io

 

[느낀점]

- 서울에서 대면 미팅을 진행했다. 지난 번 대전 대면 미팅에는 정환님께서 참여할 수 없어서 서울 쪽으로 모이면 정환님을 만날 수 있을 줄 알았으나, 아쉽게도 다른 일정과 겹쳐 모임을 갖지 못했다. 그래도 대전에서 한 번 만났다고 처음보다 훨씬 친근한 데이크루 포스 멤버들을 만나 근황에 대해서 이야기를 나눴다.

- 프로그래머스 데브 매칭에 합격했다는 내용을 공유했고, 다른 팀원들은 공모전에 나간 이야기, 중간 고사를 캐글 컨피티션으로 하고 있는 이야기와 데이터 직무 인턴 합격 등 서로의 근황을 알 수 있었다. 오랜만에 만나 서울 카페에서 맛있는 디저트를 시작으로 맛있는 저녁 식사도 함께 하였다. 시간이 길지 않아서 바삐 움직여 더운 날 땀을 흘리며 돌아다녔다. 홀리 몰리 과카 몰리가 기억에 남는다.

- 두 번째 미니 프로젝트가 사실 조금 걱정이다. 파이토치로 UNet을 구현하는 것과 다른 네트워크 모듈을 추가하는 것 사실 특별하지 않다고 생각되지만, 코드를 한 줄 한 줄 뜯어서 공부를 하면 정말 도움이 많이 될 것 같다. OpenCV로 Augmentation 하자는 의견이 있었는데, 실험해보고 성능이 얼마나 증가하는지 속도 차이는 얼마나 있었는지에 대한 내용이 추가 되면 좋을 것 같다. 하지만 팀원들 모두 바쁜 상황인데, 잘 마무리 될 수 있을지 걱정이 된다.

- 데이크루가 끝이 나도 7월 중순 정도에 부산에서 만나자고 약속을 하고 헤어지게 되었다. 과연 만날 수 있을지 잘은 모르겠지만, 되는 사람들이라도 만나서 근황을 나누고 데이크루로 만난 인연을 잘 유지하면 좋겠다. 개발자로 근무하다 보면 서로에게 필요한 상황이 될 수 있고, 좋은 근무자리를 서로 추천할 수도 있을 것 같다. 아니면 아주 작더라도 서로에게 좋은 인사이트를 주는 개발자로서의 좋은 관계로 마무리 되면 좋을 것 같다.

 

[해야할 것]

- 두 번째 미니 프로젝트 아이디어 구상

 

 

계속해서 매주 화요일 오후 2시에 POS팀의 콘텐츠가 기재됩니다! 

많은 관심 부탁드립니다! ㅎㅎㅎㅎ

+ Recent posts