使用VScode编译和调试Caffe源码,vscodecaffe
分享于 点击 16200 次 点评:4
使用VScode编译和调试Caffe源码,vscodecaffe
文章目录
- 一.caffe源码编译
- 二.调试运行cpp_classification.cpp
一.caffe源码编译
- 可选修改项
DEBUG := 1
CPU_ONLY := 1
USE_OPENCV := 1
- 必须修改的项
#找到下面两行
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
#修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-
gnu/hdf5/serial
-
sudo make all -j8
(使用8个线程执行) -
sudo make test -j8
-
sudo make runtest -j8
二.调试运行cpp_classification.cpp
./build/examples/cpp_classification/classification.bin \
models/bvlc_reference_caffenet/deploy.prototxt \
models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel \
data/ilsvrc12/imagenet_mean.binaryproto \
data/ilsvrc12/synset_words.txt \
examples/images/cat.jpg
如果上面的例子执行正常,那我们下面来调试该例子。
- 使用VSCODE打开caffe文件目录,修改launch.json
修改下面一行内容,也就是让程序运行时去执行classification.bin
"program": "${workspaceFolder}/build/examples/cpp_classification/${fileBasenameNoExtension}.bin",
"args": ["models/bvlc_reference_caffenet/deploy.prototxt",
"models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel",
"data/ilsvrc12/imagenet_mean.binaryproto",
"data/ilsvrc12/synset_words.txt",
"examples/images/cat.jpg"
],
-
classfication.cpp增加断点,开始调试运行
-
如果编辑了classfication.cpp文件,想要重新生成怎么办?
例如,给例子添加计时函数
double time1 = static_cast<double>( cv::getTickCount());
std::vector<Prediction> predictions = classifier.Classify(img);
double timeuse = (static_cast<double>( cv::getTickCount()) - time1)/cv::getTickFrequency();
std::cout<<"time use:"<<timeuse<<std::endl;
执行sudo make example -j8
可以重新编译examples中的*.cpp,并生成*.bin执行文件
相关文章
- 暂无相关文章
用户点评