Creating DetectNet Model with DIGITS
TensorRT下载地址:https://developer.nvidia.com/nvidia-tensorrt-download
TesnsoRT介绍文档:https://devblogs.nvidia.com/tensorrt-3-faster-tensorflow-inference/
TensorRT开发者指南:http://docs.nvidia.com/deeplearning/sdk/tensorrt-developer-guide/index.html
TensorRT样例代码:http://docs.nvidia.com/deeplearning/sdk/tensorrt-developer-guide/index.html#samples
当上一步的数据处理完,返回到主页上面。选择Models,然后选择New Model里面的Object Detection:
按照下面的内容设置你的表单中的内容:
• Select Dataset: coco-dog
• Training epochs: 100
• Subtract Mean: none
• Solver Type: Adam
• Base learning rate: 2.5e-05
• Select Show advanced learning options
o Policy: Exponential Decay
o Gamma: 0.99
Selecting DetectNet Batch Size
DetectNet的默认设置batch size是10,训练时会消耗大概12GB的内存空间。利用 Batch Accumulation 方法,可以在一个GPU上进行训练,不用占用12GB那么多的内存空间。下面的表格可以查看对应的Batch Size占用的GPU内存空间。
如果您的GPU卡有12GB,您可直接设置默认大小的Batch Size而不用设置 Batch Accumulation 。如果您想用更少的GPU或者GPU内存,您可以按照上面的进行设置。
Specifying the DetectNet Prototxt
在网络模型定义方面,我们选择Custom Network 来自定义修改网络。在我们的例子中,我们可以复制粘贴detectnet.prototxt里面的内容。
DetecNet prototxt 在data/networks/detectnet.prototxt。
Training the Model with Pretrained Googlenet
因为DetectNet是有GoogleNet衍生出来的,所以强烈推荐使用GoogleNet作为预训练权重,这样会保证训练的速度和稳定。下载GoogleNet模型,或者用下面的命令下载:
wget http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel
然后在Prertrained Model 选项里指定下载的GoogleNet的路径。
选择一个GPU来训练,然后填好Model Name和Group Name:
• Group Name MS-COCO
• Model Name DetectNet-COCO-Dog
最后,点击页面最下面的Create按钮:
Testing DetectNet Model Inference in DIGITS
让训练工作跑一段时间,比如50个epochs,直到mAP(Mean Average Precision)的曲线开始上升。注意,由于mAP的计算室友DetecNet的损失函数完成的,所以mAP的变化区域不一定是0~100,就算是5或者10,这个模型也是可以用的。在训练COCO这个量级的数据的时候,可能需要利用GPU跑几个小时才能完成。
训练完成之后,我们可以再训练的这个页面测试一下我们训练好的模型。在这个页面,我们看最下面,在Visualization里面选择Bounding boxes,然后在下面的Image Path里面输入您想要测试的图片(我们这里的例子是:/coco/val/images/dog/000074.png):
然后点击测试按钮,您就会看到如下界面: