↓폴밍끼 유튜브 채널 자세히보기

Python library & package 36

[해결방법] ModuleNotFoundError: No module named 'torchvision.ops'

아래와 같은 에러가 뜸. ModuleNotFoundError: No module named 'torchvision.ops' torchvision 버전을 업그레이드 하면 된다고 한다. 확인해보니 버전이 0.2.2 이었다. 최소 0.9.1로 업그레이드 해주라고 한다. pip uninstall torchvision pip install torchvision==0.9.1 해결~! 참고 https://github.com/facebookresearch/detectron2/issues/1574 ModuleNotFoundError: No module named 'torchvision.ops' · Issue #1574 · facebookresearch/detectron2 Instructions To Reproduce t..

[해결방법] libpng warning: iCCP: known incorrect sRGB profile

libpng warning: iCCP: known incorrect sRGB profile 가 콘솔 창에 계속 뜨면서 굉장히 깔끔하지 않은 상황이 발생하는데 이건 해당 데이터셋의 이미지를 전부 opencv로 읽어오고(imread), 그걸 다시 저장해서(imwrite) 해결할 수 있다. 그 저장된 이미지 데이터셋에 대해 다시 진행하면 위와 같은 상황은 발생하지 않는다. 핵심은 cv2.imread()와 cv2.imwrite()하는 것 뿐이다. 다만 파일의 전체 이미지 파일에 대해 전부 진행해야하니 glob를 사용해서 이미지 파일 이름 리스트를 만들고 진행하면 편하다. 아래는 코드 전문. from glob import glob import cv2 print(cv2.__version__) def getImgNa..

[해결방법] AttributeError: module 'hydra' has no attribute 'main'

hydra는 pip install hydra 하면 안된다고 한다.. 그렇게 추측해서 설치하지 말라고 함 ㅋㅋㅎㅎ 하지만 나는 그렇게 했었고 아래처럼 한 후 해결하였다. pip install hydra-core --upgrade 참고 https://github.com/facebookresearch/hydra/issues/919 [Bug] AttributeError: module 'hydra' has no attribute 'main' · Issue #919 · facebookresearch/hydra 🐛 Bug Description AttributeError: module 'hydra' has no attribute 'main' Checklist I checked on the latest version o..

[해결방법] TypeError: cannot create weak reference to 'weakcallableproxy' object

stackoverflow에서 한 답변이 pytorch-lightning pip 패키지를 1.9.0에서 1.8.6으로 다운그레이드해서 해결했다고 한다. 확인해보니 pytorch-lightning 버전이 1.9.3이었고 1.8.6으로 다운그레이드 해주어서 해결했다. pip install pytorch-lightning==1.8.6 참고 https://stackoverflow.com/questions/75356395/cannot-create-weak-reference-to-weakcallableproxy-object-in-pytorch-module Cannot create weak reference to 'Weakcallableproxy' object in Pytorch Module When i run my ..

keras 사용 도중 killed 될 때

텐서보드를 사용하고 있다면(tensorboard_callback = keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)), histogram_freq=1 인자를 아래와 같이 바꿔주세요. histogram_freq=0 이렇게 해도 killed 된다면 그냥 tensorboard 안사용하는 것도 방법이더라구요.. 참조한 글 : (In case anyone else runs into this issue). I ran into the same problem - Keras would train for one epoch and then the console just says Killed with no other error messages, and the w..

unet을 load_model 시 Unknown layer: GELU. Please ensure this object is passed to the `custom_objects` argument. 가 뜬다면 custom_objects 설정하세요

아래 두 코드처럼 load_model의 인자에 모델 경로 뿐만 아니라 custom_objects도 추가해줘야 합니다. from keras_unet_collection.activations import GELU from keras_unet_collection.losses import iou_seg # /media/visbic/MGTEC/water_seg/water_segmentation/unet_model/20211211-040154/10-0.9812.hdf5 model = keras.models.load_model('/water_segmentation/unet_model/20211211-040154/10-0.9812.hdf5', custom_objects={ "GELU":GELU, "iou_seg":io..

colab에 matplotlib 사용 시 한글 안깨지게 하기

아래 코드들 순서대로 복붙 후 실행시키시면 됩니다. (혹시나 안되신다면 kernel restart하신 후에 다시 하여보세요) # 한글 폰트 사용을 위한 설정 !sudo apt-get install -y fonts-nanum !sudo fc-cache -fv !rm ~/.cache/matplotlib -rf import matplotlib.font_manager as fm plt.rc('font', family='NanumGothic') for fontInfo in fm.fontManager.ttflist: if 'Nanum' in fontInfo.name: print(fontInfo.name+" = "+fontInfo.fname)

하나의 도커 이미지 docker image 에 여러 개의 컨테이너 container 만들기(tensorflow/serving)

호스트 시스템의 TCP 포트 번호를 달리 해서 가능하게 했습니다. tensorflow model server를 도커를 통해 실행시켰는데, 비트코인 가격 예측 모델은 포트 번호 8501:8501로 하여 컨테이너를 만들고 이더리움 가격 예측 모델은 도커 엔진이 호스트 시스템의 TCP 포트 8502번을 컨테이너의 TCP 포트 8501번으로 포워딩하도록 하여(8502:8501) 컨테이너를 두 개 만들었습니다. 즉, 호스트 시스템의 TCP 포트만 바꿔주고(8501->8502) 컨테이너의 TCP 포트는 8501번으로 고정시켜 줍니다. 기본적으로 TF서빙은 8501번 포트를 사용하여 REST API를 제공하기 때문입니다. (8500번은 gRPC API를 제공하는 데 사용합니다.) 참고로 각각 예측 모델의 컨테이너 생..

도커를 활용한 Tensorflow model server에 새로운 버전의 모델 배포하기

새로운 버전의 모델을 만들어 이전 글의 0번째 단계에서와 같이 C:\Users\007_0\serving\btc_lstm\2 폴더에 saved_model함수를 써서 모델을 저장합니다. import tensorflow as tf data_path = 'C:\Users\007_0\serving\btc_lstm' modelpath = data_path + "\2" # 모델 버전 2을 의미합니다 tf.saved_model.save(model, modelpath) 끝입니다. 이렇게 저장만 해준다면 일정한 간격으로(간격 조정 가능) 텐서플로 서빙이 새로운 버전을 확인합니다. 새로운 버전을 찾으면 자동으로 버전 교체를 진행합니다. 기본적으로 대기 중인 요청이 있다면 이전 버전의 모델로 응답합니다. 새로운 요청은 새 버..