본문 바로가기

분류 전체보기200

[PyTorch] CrossEntropyLoss가 음의 무한대로 갈 때 최근 PyTorch로 모델 쌓는 법을 배우면서 from scratch 로 구현하는 시도를 해보고 있다. 그런데, loss가 점점더 -∞로 가고 업데이트되지 않는 문제가 발생했다. 아주 사소해보이지만 치명적인 실수를 했다는 것을 알게 되어 얼굴을 붉히며 포스팅을 남겨본다 🥵 우선 하려고 했던 건 간단하다. MNIST를 flatten하여 입력으로 넣고, 2개의 hidden layer를 가지고 10개의 로짓을 출력하는 매우 간단한 모델을 만들었다. 모델의 파라미터는 he, zero로 초기화, optimizer로는 Adam을 사용하였다. 코드를 보자. # loss function loss_fn = nn.CrossEntropyLoss() for e in range(epochs): for b, (data, labe.. 2023. 11. 23.
[네부캠 AI Tech] 2주차 학습 정리 🤓 회고보다는 학습 정리가 좀 더 어울리는 제목인 것 같아 바꿔봤다. 지난 주는 적응 + 기초 강의였다면 이번 주는 PyTorch의 기초와 구현 과제로 구성되어 있었고, 촘촘한 설명에 재미있게 따라가보았다..🏃🏻‍♂️ 목차 학습 정리 & 배운점 # 231113 좀 할 만 한가? 학습 정리 🤭 [ PyTorch Basics ] - 파이토치의 기본적인 연산자 - 텐서는 list, numpy를 통해 만들 수 있음. dims, shape, size() 사용 가능. - 동일 모양 텐서 간 덧셈, 뺄셈, 스칼라곱 가능. - 곱 가능한 행렬 간 mm() 메서드 사용, 곱 가능한 벡터 간 dot() 메서드 사용. broadcasting 지원하는 메서드는 matmul() - 텐서에는 squeeze, unsqueeze(=e.. 2023. 11. 17.
[네부캠 AI Tech] 1주차 회고 🤓 합류 소식에 기뻐했던 게 어제 같은데, 어느 새 1주차의 마지막 날도 거의 끝나간다 😅 막상 시작해보니 웃으면서 끝을 볼 수 있을지는 잘 모르겠...는 (?) 첫 주차의 회고를 남겨본다. 목차 일별 소감 & 배운점 # 231106 대망의 첫 날 소감 🤭 후다닥 수강할 강의량을 훑어보았는데, 오.. 생각보다도 훨씬 많았다 !! 나는 Python 보다는 수학에 훨씬 약하니까 AI Math 부터 차근차근 듣기로 결심했다 첫 날이라 앞으로의 과정에 대한 소개, 내 소개, 팀 소개를 하느라 정신이 없었다. 배운점 📚 벡터, 행렬을 어떤 관점에서 보느냐에 따라 연립방정식을 풀어낼수도, 선형회귀분석을 할 수도 있음 행렬은 데이터도 되고, operator도 될 수 있음 역행렬이 없으면? 가짜 역행렬을 사용할 수 있고,.. 2023. 11. 10.
네이버 부스트캠프 AI Tech 6기 합격 후기 (현업종사자, 프리코스 수강, KDT 전형) 목차 ✨축합격✨ 우선 매우x10000000으로 기쁘게도 합격했다 야호 !! 합격일은 지금으로부터 일주일도 더 된 10월 18일이었지만, 바쁘다는 핑계로 이제서야 후기를 끄적여본다. 현재 상태 합류 의사를 전달하고 온보딩 일정을 설레이는 마음으로 기다리고 있으며, 동시에 퇴직 절차를 밟고 있다. 신청 배경 사실 나는 무려 타이틀만으로는 A.I. team 에서 AI 연구원으로 있는 재직자(였)다. 부전공에 학사로 시작한 나는 현업에서 일한지는 도합 3여 년이 되어가지만, 항상 배움에 목마름이 있었다. 학사라는 타이틀에 대한 문제보다는, 인공지능의 기반 지식인 선형대수, 확률론에 대해서 약하다는 생각이 스스로 많이 들었기 때문이다. 또 작은 규모에 현업에 있었다보니, CV, Recsys, NLP 조금씩 찍먹만.. 2023. 10. 30.
파이토치 Input type and weight type should be the same .. 오류 오류 상황 CIFAR10 데이터 세트를 로드하고, Lenet 아키텍처를 빌드하여 학습하려는데 다음과 같은 오류가 났다. RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same or input should be a MKLDNN tensor and weight is a dense tensor 해결 방안 데이터와 모델 모두 cuda 디바이스에 올린다. -> 오류 해결 # 미니 배치 for batch, (X, y) in enumerate(dataloader): X, y = X.to('cuda'), y.to('cuda') # 모델 및 손실 함수 lenet = LeNet().to('c.. 2023. 10. 25.
[판다스] 최댓값을 포함하는 컬럼명을 찾는 방법 문제 예시 아래와 같이 수치로 표현된 컬럼들이 있을 때, row 별로 최댓값을 가지는 컬럼명을 모아 새로운 컬럼(Max)을 생성하고자 함 Communications and Search Business General Lifestyle Max 0 0.745763 0.050847 0.118644 0.084746 Communications 0 0.333333 0.000000 0.583333 0.083333 Business 0 0.617021 0.042553 0.297872 0.042553 Communications 0 0.435897 0.000000 0.410256 0.153846 Communications 0 0.358974 0.076923 0.410256 0.153846 Business 판다스 메서드 활용하.. 2023. 10. 25.