关于项目配置:
原文中是:
I use Python 2.7 and Pytorch 0.3. For installing Pytorch, follow the official guide. Other packages are specified in requirements.txt.
opencv_python==3.2.0.7
numpy==1.11.3
scipy==0.18.1
h5py==2.6.0
tensorboardX==0.8
# for tensorboard web server
tensorflow==1.2.0
我换成了py3.6-pytorch1.0.1
所以有一些东西需要改:
#import cPickle as pickle import pickle as pickle #https://www.jianshu.com/p/0e3c236164f5
#from scipy.misc import imsave #scipy.misc.imsave()被弃用,应该用imageio.imwrite()来替代 from imageio import imsave 或者 from imageio import imwrite
(py3_6--pytorch1_0_1) boyun@boyun:~$ pip list
Package Version
--------------------- ---------
astroid 2.2.5
attrs 19.1.0
backcall 0.1.0
backports.weakref 1.0rc1
bleach 1.5.0
certifi 2019.6.16
chardet 3.0.4
cycler 0.10.0
decorator 4.4.0
defusedxml 0.6.0
entrypoints 0.3
graphviz 0.11.1
h5py 2.9.0
hiddenlayer 0.2
html5lib 0.9999999
idna 2.8
imageio 2.5.0
ipykernel 5.1.1
ipython 7.6.1
ipython-genutils 0.2.0
ipywidgets 7.5.0
isort 4.3.21
jedi 0.13.3
Jinja2 2.10.1
joblib 0.13.2
jsonschema 3.0.1
jupyter 1.0.0
jupyter-client 5.3.1
jupyter-console 6.0.0
jupyter-core 4.5.0
kiwisolver 1.1.0
lazy-object-proxy 1.4.1
Markdown 2.2.0
MarkupSafe 1.1.1
matplotlib 3.1.1
mccabe 0.6.1
mistune 0.8.4
nbconvert 5.5.0
nbformat 4.4.0
networkx 2.3
notebook 6.0.0
numpy 1.17.0
onnx 1.5.0
opencv-contrib-python 3.3.1.11
opencv-python 3.3.1.11
pandas 0.25.0
pandocfilters 1.4.2
parso 0.5.0
pexpect 4.7.0
pickleshare 0.7.5
Pillow 6.1.0
pip 19.1.1
plotly 4.0.0
prometheus-client 0.7.1
prompt-toolkit 2.0.9
protobuf 3.9.0
ptyprocess 0.6.0
Pygments 2.4.2
pylint 2.3.1
pyparsing 2.4.1.1
pyrsistent 0.14.11
python-dateutil 2.8.0
pytz 2019.1
PyWavelets 1.0.3
pyzmq 18.0.0
qtconsole 4.5.2
requests 2.22.0
retrying 1.3.3
scikit-image 0.15.0
scikit-learn 0.21.2
scipy 1.3.0
Send2Trash 1.5.0
setuptools 41.0.1
six 1.12.0
sklearn 0.0
tensorboardX 1.8
tensorflow 1.2.0
tensorwatch 0.8.5
terminado 0.8.2
testpath 0.4.2
timm 0.1.10
torch 1.0.1
torchstat 0.0.7
torchvision 0.2.1
torchviz 0.0.1
tornado 6.0.3
traitlets 4.3.2
typed-ast 1.4.0
typing 3.7.4
typing-extensions 3.7.4
urllib3 1.25.3
wcwidth 0.1.7
webencodings 0.5.1
Werkzeug 0.15.5
wheel 0.33.4
widgetsnbextension 3.5.0
wrapt 1.11.2
boyun@boyun:~/code/baidu_vis/person-reid-triplet-loss-baseline$ tree
.
├── example_rank_lists_on_Duke
│ ├── 00000126_0002_00000021.jpg
│ ├── 00000147_0003_00000004.jpg
│ ├── 00000169_0001_00000008.jpg
│ ├── 00000257_0003_00000004.jpg
│ ├── 00000288_0001_00000007.jpg
│ ├── 00000300_0002_00000005.jpg
│ ├── 00000570_0004_00000008.jpg
│ ├── 00000611_0002_00000005.jpg
│ ├── 00000641_0001_00000005.jpg
│ ├── 00000849_0002_00000010.jpg
│ ├── 00001228_0001_00000004.jpg
│ ├── 00001463_0006_00000006.jpg
│ ├── 00001782_0008_00000004.jpg
│ ├── 00001901_0002_00000003.jpg
│ ├── 00004331_0006_00000007.jpg
│ └── 00004605_0006_00000007.jpg
├── README.md
├── requirements.txt
├── script
│ ├── dataset
│ │ ├── combine_trainval_sets.py
│ │ ├── mapping_im_names_duke.py
│ │ ├── mapping_im_names_market1501.py
│ │ ├── transform_cuhk03.py
│ │ ├── transform_duke.py
│ │ └── transform_market1501.py
│ └── experiment
│ ├── infer_images_example.py
│ ├── train.py
│ └── visualize_rank_list.py
├── tri_loss
│ ├── dataset
│ │ ├── Dataset.py
│ │ ├── __init__.py
│ │ ├── Prefetcher.py
│ │ ├── PreProcessImage.py
│ │ ├── TestSet.py
│ │ └── TrainSet.py
│ ├── __init__.py
│ ├── model
│ │ ├── __init__.py
│ │ ├── loss.py
│ │ ├── Model.py
│ │ ├── resnet.py
│ │ └── TripletLoss.py
│ ├── __pycache__
│ │ └── __init__.cpython-36.pyc
│ └── utils
│ ├── dataset_utils.py
│ ├── distance.py
│ ├── __init__.py
│ ├── metric.py
│ ├── __pycache__
│ │ ├── dataset_utils.cpython-36.pyc
│ │ ├── __init__.cpython-36.pyc
│ │ └── utils.cpython-36.pyc
│ ├── re_ranking.py
│ ├── utils.py
│ └── visualization.py
└── 数据集结构.txt
这里我们使用Market-1501-v15.09.15数据集
首先是生成对应的pkl格式的代码
这些代码都频繁调用了:
from tri_loss.utils.utils from tri_loss.utils.dataset_utils
安装如下软件
sudo apt-get install graphviz
pip install pylint使用python
UML类图自动生成工具--pyreverse
新建了一个__init__.py:
from tri_loss.utils.utils import *
from tri_loss.utils.dataset_utils import *
from tri_loss.utils.distance import *
from tri_loss.utils.metric import *
from tri_loss.utils.re_ranking import *
from tri_loss.utils.visualization import *
from tri_loss.dataset.__init__ import *
from tri_loss.dataset.Dataset import *
from tri_loss.dataset.Prefetcher import *
from tri_loss.dataset.PreProcessImage import *
from tri_loss.dataset.TestSet import *
from tri_loss.dataset.TrainSet import *
from tri_loss.model.loss import *
from tri_loss.model.Model import *
from tri_loss.model.resnet import *
from tri_loss.model.TripletLoss import *
from script.dataset.combine_trainval_sets import *
from script.dataset.mapping_im_names_duke import *
from script.dataset.mapping_im_names_market1501 import *
from script.dataset.transform_cuhk03 import *
from script.dataset.transform_duke import *
from script.dataset.transform_market1501 import *
from script.experiment.infer_images_example import *
from script.experiment.train import *
from script.experiment.visualize_rank_list import *
命令:
pyreverse -ASmy -o png person-reid-triplet-loss-baseline/