初心者が直接再現できる:DuanバージョンCenterNetは2080 Tiで自分のデータセット--ピット記録を訓練する


実験室はGPUを交換して、centernetの新しいコンピュータの上の配置の過程を記録して、もし以下の多くの理解に対して先に私の以前のこのブログを読むならば初心者はCornerNetを再現することができます:ゼロの基礎を詳しく指導してUbuntuシステムでこのコードを実行してそして完全に論文の構想の教程を理解します
直接再現
CenterNet-duan-2080 TiコードはREADME上の操作に従えばよい
ピット記録
1.cudaバージョンの問題
/home/psdz/anaconda3/envs/CenterNet/lib/python3.6/site-packages/torch/cuda/__init__.py:114: UserWarning: 
	 Found GPU0 GeForce RTX 2080 Ti 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
	 ...
	 ...
	 ...
	   File "/home/psdz/anaconda3/envs/CenterNet/lib/python3.6/site-packages/torch/nn/modules/conv.py", line 301, in forward
self.padding, self.dilation, self.groups)
RuntimeError: CuDNN error: CUDNN_STATUS_MAPPING_ERROR

これはCUDAバージョンの問題で、まず機器にcudaとcuDNNがインストールされていることを確認し、保証する:グラフィックス駆動のcudaバージョン(10.2)>機器の運転cudaバージョン(10.0)>環境内のcuda-toolkitバージョン(9.0)もちろん、pytorchバージョンも重要で、詳しくは以下を参照
インストール方法:Ubuntu 18.04にcuda ubuntu 18.04 cudaをインストールする
次のコマンドで検証します.
#         cuda  
nvidia-smi 

#    runtime cuda  
nvcc -V 
nvcc --version

#  centernet    ,               
>>> print(torch.__version__)
0.4.1
>>> print(torch.version.cuda) 
8.0.61
>>> 

これにより、cudaが9.0より大きく、ドライババージョンよりも小さいことを保証できます.
余計なことを言う
cat /usr/local/cuda/version.txt

cudaバージョンを表示することもできますが、私のパソコンの表示が一致していません.nvcc--versionに基づいているに違いありません.理由はCUDAバージョンで検出されたからです.
  nvcc
which nvcc,   /usr/bin/nvcc,    nvcc    /usr/local/cuda/bin/nvcc。
  ,sudo gedit /usr/bin/nvcc,      "exec /usr/lib/nvidia-cuda-toolkit/bin/nvcc"   "exec /usr/local/cuda/bin/nvcc"
    nvcc --version    10.0

2.torchバージョンの問題
Traceback (most recent call last):
  File "train.py", line 5, in 
    import torch
ModuleNotFoundError: No module named 'torch'

最新バージョンのpytorchを直接インストールするのは一致しないので、複数のバージョンの最後の1.0を試しても使えます.もちろんcudaバージョンも試してみましたが、私の最後のpytorchはpytorch-1.0.0-py 3です.6_cuda9.0.176_cudnn7.4.1_1,最も良いのは雷でダウンロードします
3.角池化問題
(centernet) psdz@dj:~/  /CenterNet-master$ python train.py CenterNet-52
Traceback (most recent call last):
File "train.py", line 18, in 
	from nnet.py_factory import NetworkFactory
  File "/home/psdz/  /CenterNet-master/nnet/py_factory.py", line 8, in 
    from models.py_utils.data_parallel import DataParallel
  File "/home/psdz/  /CenterNet-master/models/py_utils/__init__.py", line 6, in 
    from ._cpools import TopPool, BottomPool, LeftPool, RightPool
  File "/home/psdz/  /CenterNet-master/models/py_utils/_cpools/__init__.py", line 8, in 
    import top_pool, bottom_pool, left_pool, right_pool
ImportError: /home/psdz/.local/lib/python3.6/site-packages/cpools-0.0.0-py3.6-linux-x86_64.egg/top_pool.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN2at6detail20DynamicCUDAInterface10set_deviceE 	

この問題は実はプール化のコンパイルの過程の中で問題を除いて、公式の解決策の2つです
cd /models/py_utils/_cpools/
python setup.py install --user

後ろの-userを外して、私は最後にこのブログの構想を参考にして解決することは何もありませんpytorch=0.4.0を詰めることができませんか?ubuntuではcuda=92とpytorch=1.2に基づいて環境を構成しCornerNetトレーニングとテストプロセスステップの詳細(GPU制限問題の詳細を含む)
簡単に考えてみると、新しいバージョンのCornerNet-LiteのCornerNet-Lite/core/models/py_utils/_cpoolsフォルダコピーCornerNetソースコードの下にあるCornerNet/models/py_を置き換えます.utils/_cpools/、コマンドを実行してCenterNet-Liteコードを再コンパイル
cd /models/py_utils/_cpools/
python setup.py install

4.データセット交換の問題
独自のデータセットをテストするには、次のような場所を変更する必要があります.
1. config   json  ,      
	"batch_size": 48,
	 "max_iter": 48000,
    "stepsize": 45000,
    "snapshot": 500,
	chunk_sizes": [6,6,6,6,6,6,6,6],
	"data_dir": "../data"
2. db   detection.py  
   (self._configs["categories"] = 80)
3. model   centernet-52.py
	  out_dim = 80
4. test   coco.py
      colours = np.random.rand(80,3)

個人のニーズを見ると、実際には出力のカテゴリが違います.
  • データセットの位置はgithubのREADMEの上にいくつかあり、パスはjsonファイルを変更すれば
  • になる.