5-3. Machine Learning
Notebook 프로젝트의 머신러닝 개발 중 발생한 이슈 리포트입니다.
Trouble 1. 이미지 로딩시 dimension 에러
이미지를 업로드하는데 jpg 파일은 되는데 png 파일에서 에러 발생되는 경우가 있었습니다. dimension error가 발생하여 검색한 결과 이미지 형식을 변경해주면 해결되는 경우가 있어 적용했습니다.
우선 pillow 임포트하고from PIL import Image convert해줍니다. 경우에 따라 맞는 형태로 변경해줍니다.
Trouble 2. 장고앱에서 실행시 cp949' codec can't decode byte 0xe2 에러
장고앱 위치에 필요한 코드를 이동한 후 필요한 코드만 남기고 삭제하고 view.py에 샘플 구현 simple caption을 실행할 때 에러 발생합니다.
바이트 형식이라서 인코딩이 먹히지도 않고 (latin1, ascii, utf-8) .pkl을 만들 때 인코딩을 해도 해결이 안됩니다.
AttributeError: Can't get attribute 'voc' on <module '__main__' from 'manage.py'> UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 9735: illegal multibyte sequence
그냥 파이썬에서 실행이 잘 되던 코드가 Django에서 작동이 안되고 에러가 발생합니다.
그래서 약 2일간 'cp949' codec can't decode byte 0xe2 해결책을 찾기 위해서 삽질을 합니다. protocol 을 설정하는 방법도 써 보았지만 해결이 되지 않았습니다.
그런데 다른 방법으로 접근 후, pkl 로딩이 잘 되는 것을 다시 확인합니다. 그러면 인코딩 문제가 아니라는 생각으로 재접근을 합니다. 그리고 조언을 받아 추가한 코드로 해결이 됩니다.
모듈임을 지정하는 기능인데 사용하는 함수를 들여쓰기에 맞춰 class 안에 모두 위치 시킵니다.
Trouble 3. libstdc++ 경로 문제
신버전이 있음에도 구버전의 경로가 설정되어 있어서 에러가 발생한 경우입니다.필요한 버전을 찾아가도록 링크를 설정하면 해결됩니다.
Touble 4. pycocotools._mask 에러
ModuleNotFoundError: No module named 'pycocotools._mask' 다른 가상환경을 설치하여 실행할 수 있습니다.
Trouble 5. argparse 에러
argparse에서 parser 에러가 발생하는 경우가 있습니다.
argparse 에러 발생 1
usage: ipykernel_launcher.py [-h] data/annotations/captions_train2014.json data/vocab.pkl ipykernel_launcher.py: error: the following arguments are required: data/vocab.pkl An exception has occurred, use %tb to see the full traceback. SystemExit: 2
argparse 에러 발생 2
usage: ipykernel_launcher.py [-h] [--model_path MODEL_PATH] [--crop_size CROP_SIZE] [--vocab_path VOCAB_PATH] [--image_dir IMAGE_DIR] [--caption_path CAPTION_PATH] [--log_step LOG_STEP] [--save_step SAVE_STEP] [--embed_size EMBED_SIZE] [--hidden_size HIDDEN_SIZE] [--num_layers NUM_LAYERS] [--num_epochs NUM_EPOCHS] [--batch_size BATCH_SIZE] [--num_workers NUM_WORKERS] [--learning_rate LEARNING_RATE] ipykernel_launcher.py: error: unrecognized arguments: -f /home/jovyan/.local/share/jupyter/runtime/kernel-a655061f-5057-4176-9fe1-8b2b50c96aa9.json An exception has occurred, use %tb to see the full traceback. SystemExit: 2 /opt/conda/lib/python3.7/site-packages/IPython/core/interactiveshell.py:3299: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D. warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)
easydict
를 설치하여 임포트하고 아래와 같이 바꿔서 작성하면 진행이 됩니다.
Last updated
Was this helpful?