학교 수업/3-1 머신러닝, 추천시스템
-
multiprocessing Error 체크리스트학교 수업/3-1 머신러닝, 추천시스템 2022. 5. 19. 20:27
에러 나올 때마다 정신 나갈 것 같아서 에러가 나오고 해결할 때마다 따로 기록함 1. 전역 변수를 사용하고 있는가? 2. 전역 변수와 함수 파라미터 이름이 같은가? 3. Jupyter Notebook으로 진행할 경우, worker 함수를 가진 파일을 따로 만들어서 import 했는가? 4. 현재 Process가 정상적으로 동작하고 있는가? 5. 파라미터를 의도한 대로 제대로 넣었는가? (제대로 넣지 않으면 작동하지 않음)
-
[python multiprocessing] 병렬로 데이터 처리하기학교 수업/3-1 머신러닝, 추천시스템 2022. 5. 6. 02:30
추천시스템 과제를 하는데, 데이터 가공하는데 시간이 좀 오래 걸려서 멀티프로세싱을 사용하게 되었습니다. 원래 팀프로젝트 데이터 가공에 사용하려고 했는데 자꾸 Broken Pipe 에러가 나왔어서 반포기 상태였다가, 과제 데이터를 가공하는데 데이터 처리하는데 거의 20분이 걸리길래 다시 재도전하게 되었네요. 데이터는 MovieLens를 사용합니다. 다운로드는 아래 링크에서 할 수 있고, 이 글을 따라해보신다면 small data를 다운하시길 바랍니다. https://grouplens.org/datasets/movielens/latest/ MovieLens Latest Datasets These datasets will change over time, and are not appropriate for rep..
-
Weight, Bias 초기화학교 수업/3-1 머신러닝, 추천시스템 2022. 5. 3. 01:48
Weight 1) Weight를 특정값으로 초기화하는 torch.nn.init.constants (가장 성능이 좋지 않다.) 2) Weight를 표준정규분포로 초기화하는 torch.nn.init.normal (1보다는 성능이 괜찮다.) 3) Weight를 (0, 1/sqrt(은닉층 노드 수))인 정규분포로 초기화하는 xavier 초기화 (CIFAR10 데이터로 비교시 표준정규분포보다 성능이 2배 더 좋다) 4) Weight를 (0, sqrt(2/(은닉층 노드수))인 정규분포로 초기화하는 he 초기화 (CIFAR10 데이터로 비교시 표준정규분포보다 성능이 2배 더 좋다) xavier의 경우엔 활성화 함수가 sigmoid일 때 성능이 좋고, he 초기화는 활성화 함수가 ReLU일 때 성능이 좋다. ReLU를..
-
[GNN] Neural Graph Collaborative Filtering (NGCF) 코드 정리학교 수업/3-1 머신러닝, 추천시스템 2022. 5. 2. 01:56
1. 참고자료 1. 논문 리뷰 https://velog.io/@tobigs-recsys/Paper-Review-2019-ACM-Neural-Graph-Collaborative-Filtering [Paper Review] (2019, ACM) Neural Graph Collaborative Filtering 작성자 : 이혜린 Neural Graph Collaborative Filtering (2019, ACM) 1. Introduction Recommender system은 크게 Content-based Filtering과 Collaborative Filtering으로 velog.io https://hyez.github.io/study/paper/recommendations/ngcf/ [Paper Revi..
-
'float' object has no attribute 'grad' 에러 해결법학교 수업/3-1 머신러닝, 추천시스템 2022. 4. 18. 14:44
loss값을 구하고 loss.backward()를 할 때 발생하는 오류이다. float 말고도 다른 것들도 들어갈 수 있어서 □ object has no attribute 'grad'와 같은 형태로 나올 것이다. 해결법은 loss값이 required_grad=True인 값들로만 연산을 했는지 확인하여 수정해주면 된다. 참고로 required_grad = True인데, item()을 통해 값을 빼온경우 required_grad=True 속성이 없어지므로 변수들을 하나씩 확인해보자