본문 바로가기

인공지능/ML, DL9

[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.
[tensorflow] 텐서플로우 행렬 곱 연산 (성분곱, 내적, 외적) 목차 행렬의 곱셈은 크게 성분 곱(Hadamard product), 내적(inner product) 그리고 외적(outer product)이 있다. 일반적인 행렬곱은 외적에 해당한다. 각각의 연산은 아래와 같이 A, B 행렬이 있을 때, 다음과 같이 계산될 수 있다. 위와 같은 행렬 곱 연산을 텐서플로우(tensorflow)로는 아래와 같이 나타낼 수 있다. 행렬의 곱 연산에 사용할 수 있는 함수는 크게 tf.matmul(), tf.multiply(), tf.tensordot() 세 개가 있다. 환경 정보 Tensorflow == 2.13.0rc1 import tensorflow as tf 위 코드로 모듈 임포트 후 실행함 1. Element-wise 곱 연산 성분 곱 연산 = Hadamard produ.. 2023. 6. 15.
[tensorflow] 텐서플로우 랜덤 시드 고정하기 주피터 노트북 상단 또는 파이썬 파일 맨 상단에 다음 코드를 입력한다 import tensorflow as tf tf.random.set_seed(SEEDNUM) 2023. 6. 15.
[NLP] Sentence-transformer를 활용한 문장 임베딩 1. sentence-transformer 설치 $ pip install sentence-transformers 2. 모델 선택 - https://huggingface.co/sentence-transformers 에서 모델 선택 - 나는 이 모델 선택: https://huggingface.co/sentence-transformers/paraphrase-MiniLM-L6-v2 3. 모델 불러오기 from sentence_transformers import SentenceTransformer model = SentenceTransformer("sentence-transformers/paraphrase-MiniLM-L6-v2") 4. 임베딩 my_sentence = 'I love you, darling' re.. 2023. 4. 28.
[ChatGPT] Python ChatGPT API 사용 방법 (한국어 예시) 목차 1. API key 받기 2. 결제 정보 등록하기 3. python으로 ChatGPT API 요청하고 응답받기 1. API key 받기 1) http://platform.openai.com/에 접속 2) 로그인 (계정이 없는 경우 회원가입) 3) 우측 상단 Personal > view API keys 클릭 4) + create new secret key 선택 5) 원하는 이름(ex.my-first-key)으로 새로운 키를 생성 (이 키는 요금이 부과되므로, 절대 타인에게 공유해서는 안되며 private 공간에 파일 또는 텍스트의 형태로 저장해두어야 함) 6) 키가 생성되었는지 확인 2. 결제 정보 등록하기 회원가입 직후에는 $18의 무료 크레딧이 제공된다. 그러나 일정 기간이 지나고 나면 무료 크레.. 2023. 4. 27.
[tensorflow] 모델 로드 시 컴파일 warning 해결 (No training configuration found in the save file, so the model was *not* compiled.) 문제 상황 모델을 학습하여 .h5 확장자로 저장하고, 다른 프로세스에서 저장한 모델을 통해 Prediction 하려고 로드하니, 다음과 같은 에러가 발생하였다. WARNING:tensorflow:No training configuration found in the save file, so the model was *not* compiled. Compile it manually. 해결 방안 stackoverflow를 참고하여 확인해보니, 모델이 컴파일되지 않은 상태로 저장되어서 발생하는 문제라고 함. 확인해보니 나의 경우 autoencoder 중 encoder만 분리하여 저장하는데, AE 전체는 컴파일하지만 encoder만 따로 학습하지 않아 별도의 컴파일 코드가 없었음. 따라서, encoder만 별도로 .. 2022. 12. 19.