DeepLearning PyTorch YOLOv3 - eiichiromomma/CVMLAB GitHub Wiki

([DeepLearning]) PyTorch-YOLOv3

書いてある通りで動かないケース

demo.pyの実行時に延々と待たされる

CUDA9以上の場合、こっちのやりかただとCUDA8でコンパイルしたtorchを使う羽目になって延々と待たされるので、pytorchを入れ替える必要がある。 gitから拾ってきてそのまま使おうとすると

 from models.yolov3 import *
 model = YOLOv3()                                                        
 model.cuda(1)                                                           
 /home/xxxx/python3.6/site-packages/torch/cuda/__init__.py:114: UserWarning: 
     Found GPU0 GeForce RTX 2080 which requires CUDA_VERSION >= 9000 for
      optimal performance and fast startup time, but your PyTorch was compiled
      with CUDA_VERSION 8000. Please install the correct PyTorch binary
      using instructions from http://pytorch.org
     
   warnings.warn(incorrect_binary_warn % (d, name, 9000, CUDA_VERSION))

と出る。demo.pyを使おうとすると時間がかかるのもこのせい。

解決法

$ git clone https://github.com/DeNA/PyTorch_YOLOv3.git
$ cd PyTorch_YOLOv3
$ conda create -n PyTorchYOLOv3 python==3.6.7 numpy cython
$ source activate PyTorchYOLOv3
$ pip install -r requirements/requirements.txt
$ pip uninstall torch
$ conda install pytorch torchvision cuda90 -c pytorch

でようやく使える準備が整う。

from models.yolov3 import *
model = YOLOv3()
model.cuda(0) # GPU Id

で、層の構成が直ぐにずらっと出れば成功(色々warningは出る)。demo.pyを動かす。

 $ python demo.py --image data/mountain.png --detect_thresh 0.5 --weights_path weights/yolov3.weights
 /home/xxxx/python3.6/site-packages/torch/nn/_reduction.py:49: UserWarning: size_average and reduce args will be deprecated, please use reduction='sum' instead.
   warnings.warn(warning.format(ret))
 loading yolo weights weights/yolov3.weights
 THCudaCheck FAIL file=/opt/conda/conda-bld/pytorch_1544174967633/work/aten/src/THC/THCGeneral.cpp line=405 error=11 : invalid argument
 /home/xxxx/python3.6/site-packages/torch/nn/modules/upsampling.py:129: UserWarning: nn.Upsample is deprecated. Use nn.functional.interpolate instead.
   warnings.warn("nn.{} is deprecated. Use nn.functional.interpolate instead.".format(self.name))
 
 199 243 234 272 0.9996639490127563 2
 	+ Label: car, Conf: 0.87267
 116 240 160 288 0.990776777267456 19
 	+ Label: cow, Conf: 0.95761

PySlice_Unpackがundefined symbolになる

実行時に

 lib/python3.6/site-packages/torch/lib/libtorch_python.so: undefined symbol: PySlice_Unpack

が出たらpythonのバージョンが3.6.0なのが悪いらしい。3.6.xの新しいのを使う。