caffe ssd中输入图片大小对于内存使用和运行时间的影响

来源:互联网 发布:淘宝如何回复买家评价 编辑:程序博客网 时间:2024/05/16 19:18
caffe ssd中输入图片大小对于内存使用和运行时间的影响

一、内存使用
        环境为caffe下以imagenet为样本集训练resnset网络。      
在初始化生成lmdb的create_imagenet.sh脚本中,resize参数分别设置为256*256和512*512。
#!/usr/bin/env sh# Create the imagenet lmdb inputs# N.B. set the path to the imagenet train + val data dirsset -eEXAMPLE=/home/chhuang/workspace/deep_learning/bvlc_alexnetDATA=/home/chhuang/workspace/deep_learning/data/imagenetTOOLS=/home/softwares/caffe-master/build/toolsTRAIN_DATA_ROOT=/home/softwares/data/Imagenet/ILSVRC2012/ILSVRC2012_img_train/VAL_DATA_ROOT=/home/softwares/data/Imagenet/ILSVRC2012/ILSVRC2012_img_val/# Set RESIZE=true to resize the images to 256x256. Leave as false if images have# already been resized using another tool.RESIZE=trueif $RESIZE; then  RESIZE_HEIGHT=512             //这里改256和512  RESIZE_WIDTH=512else  RESIZE_HEIGHT=0  RESIZE_WIDTH=0fiif [ ! -d "$TRAIN_DATA_ROOT" ]; then  echo "Error: TRAIN_DATA_ROOT is not a path to a directory: $TRAIN_DATA_ROOT"  echo "Set the TRAIN_DATA_ROOT variable in create_imagenet.sh to the path" \       "where the ImageNet training data is stored."  exit 1fiif [ ! -d "$VAL_DATA_ROOT" ]; then  echo "Error: VAL_DATA_ROOT is not a path to a directory: $VAL_DATA_ROOT"  echo "Set the VAL_DATA_ROOT variable in create_imagenet.sh to the path" \       "where the ImageNet validation data is stored."  exit 1fiecho "Creating train lmdb..."GLOG_logtostderr=1 $TOOLS/convert_imageset \    --resize_height=$RESIZE_HEIGHT \    --resize_width=$RESIZE_WIDTH \    --shuffle \    $TRAIN_DATA_ROOT \    /home/softwares/data/Imagenet/ILSVRC2012/trainsmall.txt \    /home/softwares/data/Imagenet/ILSVRC2012/ilsvrc12_train_small_lmdbecho "Done."

随后运行caffe tools中的train,观察使用的内存情况。(由于考量的是最终在测试过程中的内存使用,所以选择的batch-size为1

50层resnet下:
输入图像lmdb为256*256的情况:
Memory required for data:302796532

输入图像lmdb512*512的情况:
Memory required for data:1211780852
512*512内存使用情况基本是256*256内存使用的4倍。这也与实际情况相符合。

二、运行时间

由于最终使用ssd结构,所以在ssd中测试一下不同输入图片大小对于运行时间的影响。
在ssd下运行VGGnet VOC数据集相同网络结构,不同的是输入分别为300*300和500*500.
运行在cpu下测试42张图片做detection。
300*300的sh为:
#!/bin/shdatesudo .build_release/examples/ssd/ssd_detect.bin models/VGGNet/VOC0712/SSD_300x300/deploy.prototxt models/VGGNet/VOC0712/SSD_300x300/VGG_VOC0712_SSD_300x300_iter_60000.caffemodel image.txtdate

其结果为:
Script started on 2016年12月01日 星期四 09时46分34秒root@fox:~/ssd/caffe# sudo sh test300.sh 2016年 12月 01日 星期四 09:46:40 CSTI1201 09:46:40.683648 16505 upgrade_proto.cpp:67] Attempting to upgrade input file specified using deprecated input fields: models/VGGNet/VOC0712/SSD_300x300/deploy.prototxtI1201 09:46:40.683956 16505 upgrade_proto.cpp:70] Successfully upgraded file specified using deprecated input fields.W1201 09:46:40.683977 16505 upgrade_proto.cpp:72] Note that future Caffe releases will only support input layers and not input fields.I1201 09:46:40.685127 16505 net.cpp:58] Initializing net from parameters: name: "VGG_VOC0712_SSD_300x300_deploy"state {  phase: TEST  level: 0}layer {  name: "input"  type: "Input"  top: "data"  input_param {    shape {      dim: 1      dim: 3      dim: 300      dim: 300    }  }}layer {  name: "conv1_1"//......  //......  //layers//.......//.......I1201 09:46:41.058290 16505 net.cpp:761] Ignoring source layer mbox_losspic/testimg00001.jpg 4 0.022213 1147 33 1419 553pic/testimg00001.jpg 5 0.0262909 1001 329 1076 453pic/testimg00001.jpg 5 0.0216578 796 250 877 416pic/testimg00001.jpg 5 0.0152326 813 311 919 443pic/testimg00001.jpg 5 0.0121413 711 863 823 1027pic/testimg00001.jpg 5 0.0115996 933 277 1023 435pic/testimg00001.jpg 6 0.0315219 7 191 141 321pic/testimg00001.jpg 6 0.0190812 4 312 344 434pic/testimg00001.jpg 6 0.017554 8 259 347 387//........//........//检测结果
//........//........
pic/testimg00042.jpg 7 0.567194 22 44 1954 1045
pic/testimg00042.jpg 15 0.0142565 1643 186 1907 888
pic/testimg00042.jpg 15 0.0129933 1517 334 1665 537
pic/testimg00042.jpg 15 0.0128657 1812 142 1924 347
pic/testimg00042.jpg 15 0.0127175 999 229 1854 977
pic/testimg00042.jpg 15 0.0125595 1746 152 1920 556
pic/testimg00042.jpg 15 0.0100875 1708 112 1915 345
pic/testimg00042.jpg 19 0.206236 -20 76 1929 1003
pic/testimg00042.jpg 20 0.0203152 -20 76 1929 1003
2016年 12月 01日 星期四 09:47:40 CST

300*300下,测试42张图片时间从9:46:41-9:47:40总共用了59秒

500*500的sh为:
#!/bin/shdatesudo .build_release/examples/ssd/ssd_detect.bin models/VGGNet/VOC0712/SSD_500x500/deploy.prototxt models/VGGNet/VOC0712/SSD_500x500/VGG_coco_SSD_500x500_iter_200000.caffemodel image.txtdate

其结果为:
Script started on 2016年12月01日 星期四 09时51分22秒root@fox:~/ssd/caffe# shsudo sh test500.sh 2016年 12月 01日 星期四 09:51:30 CSTI1201 09:51:30.804812 16567 upgrade_proto.cpp:67] Attempting to upgrade input file specified using deprecated input fields: models/VGGNet/VOC0712/SSD_500x500/deploy.prototxtI1201 09:51:30.805297 16567 upgrade_proto.cpp:70] Successfully upgraded file specified using deprecated input fields.W1201 09:51:30.805342 16567 upgrade_proto.cpp:72] Note that future Caffe releases will only support input layers and not input fields.I1201 09:51:30.807884 16567 net.cpp:58] Initializing net from parameters: name: "VGG_coco_SSD_500x500_deploy"state {  phase: TEST  level: 0}layer {  name: "input"  type: "Input"  top: "data"  input_param {    shape {      dim: 1      dim: 3      dim: 500      dim: 500    }  }}layer {  name: "conv1_1"
//......  //......  //layers//.......//.......I1201 09:51:32.158409 16567 net.cpp:761] Ignoring source layer mbox_losspic/testimg00001.jpg 1 0.698755 636 628 754 949pic/testimg00001.jpg 1 0.253025 1042 586 1140 874pic/testimg00001.jpg 1 0.238435 743 691 860 959pic/testimg00001.jpg 1 0.118032 1060 422 1259 888pic/testimg00001.jpg 1 0.0983797 684 677 818 971pic/testimg00001.jpg 1 0.0951707 713 634 771 724pic/testimg00001.jpg 1 0.0922268 1008 373 1037 439pic/testimg00001.jpg 1 0.0918469 923 521 1012 557pic/testimg00001.jpg 1 0.0912337 1119 361 1239 553
//........//........//检测结果
//........//........
pic/testimg00042.jpg 74 0.0312432 1747 396 1800 439pic/testimg00042.jpg 74 0.0304748 1842 389 1907 462pic/testimg00042.jpg 74 0.0272788 1736 352 1925 423pic/testimg00042.jpg 74 0.0269475 1713 397 1787 439pic/testimg00042.jpg 76 0.0348364 1078 304 1143 365pic/testimg00042.jpg 76 0.0292064 1120 308 1168 3632016年 12月 01日 星期四 09:54:34 CST

500*500下,测试42张图片从9:51:32-9:54:34总共用了182秒。

500*500的图像尺寸是300*300的(500*500)/(300*300)=2.778倍,所用时间是182/59=3.085倍,时间影响大致与尺寸成1:1关系。

0 0
原创粉丝点击