为什么非要执着于tensorflow1.12.0呢,因为可以在cuda9.0上啊。而且经常会分布一些新的模型,不能总去迎合版本吧,毕竟服务器中cuda版本换的话,很麻烦。
0.环境
ubuntu16.04
python3.6
cuda9.0
cudnn7.6.1
tensorflow-gpu==1.12.0
models==1.12.0
1.准备
1.1 下载ssdlite_mobilenet_v3_large预训练模型
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md
并解压复制到远程服务器我们放模型的路径:
1.2 下载models-master、修改自己config项目配置(需要其中的几个文件)
(1)将其中的models-master\research\object_detection\samples\configs\ssdlite_mobilenet_v3_large_320x320_coco.config复制到Config\ssdlite_mobilenet_v3_large_pretrain_16_dataAug_320_mergedata目录下;
(2)修改ssdlite_mobilenet_v3_large_320x320_coco.config文件适配到我们自己的数据(输入数据、类别、预训练模型路径);
2.修改
2.1 添加文件models中
复制三个文件到models-1.12.0对应的目录下。
Step2
参考models-master修改/research/object_detection/builders/model_builder.py
添加以下模型导入
from object_detection.models.ssd_mobilenet_v3_feature_extractor import SSDMobileNetV3LargeFeatureExtractor
from object_detection.models.ssd_mobilenet_v3_feature_extractor import SSDMobileNetV3SmallFeatureExtractor
Step3
在/research/object_detection/builders/model_builder.py添加'ssd_mobilenet_v3_large':SSDMobileNetV3LargeFeatureExtractor,'ssd_mobilenet_v3_small':SSDMobileNetV3SmallFeatureExtractor,
2.2 修改/models/ssd_mobilenet_v3_feature_extractor.py等
step1
import tensorflow.compat.v1 as tf
为
import tensorflow as tf
Step2
添加
slim = tf.contrib.slim
step3
注释
# import tf_slim as slim
2.3 添加mobilenet_v3文件
Step1
\research\slim\nets\mobilenet目录下面两个文件复制到对应目录下,将
Step2
修改mobilenet_v3.py
为:
Step3
添加slim = tf.contrib.slim
Step4:
修改\research\slim\nets\mobilenet\conv_blocks.py文件中squeeze_excite添加到对应目录下
修改\research\slim\nets\mobilenet\conv_blocks.py文件中expanded_conv添加到对应目录下
3.训练正常
4.推理正常