ImageNet标签文件(也叫同义词组文件)也是需要的,用于将预测类别映射到类别名:
1./data/ilsvrc12/get_ilsvrc_aux.sh
使用这些下载的文件,我们可以分类预先准备的猫图像(examples/images/cat.jpg),使用命令:
1../build/examples/cpp_classification/classification.bin \
2.models/bvlc_reference_caffenet/deploy.prototxt \
3.models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel \
4.data/ilsvrc12/imagenet_mean.binaryproto \
5.data/ilsvrc12/synset_words.txt \
6.examples/images/cat.jpg
输出应该是:
1.---------- Prediction for examples/images/cat.jpg ----------
2.
3.0.3134 - "n02123045 tabby, tabby cat"
4.
5.0.2380 - "n02123159 tiger cat"
6.
7.0.1235 - "n02124075 Egyptian cat"
8.
9.0.1003 - "n02119022 red fox, Vulpes vulpes"
10.
11.0.0715 - "n02127052 lynx, catamount"
提高性能
为了进一步提高性能,你需要更多的利用GPU,这里是一些准则:
尽早将数据转移到GPU上,在这里完成所有的预处理操作。
如果你同时分类许多图像,应该使用批处理(许多独立图像在一次运行中被分类)。
使用多线程分类确保GPU被充分利用,不要等待I/O阻塞CPU线程。
最后你觉得我们的文章对你有帮助,欢迎关注我,并加一下在评论下方的学习群,学习编码:久伴。你可以随时在上面向我们提问,把你在学习C++过程中所遇到的问题发给我们。我们每天都会按时回复大家的每一个问题,希望久伴可以伴随你从入门到专家。
閱讀更多 前端勤學者一勞永逸 的文章