1) fc7表示提取全连接第七层特征,conv5表示提取第五个卷积层的特征, examples/temp_features表示存放结果的目录(目录不需要提前构建)
2.)10:输入的包的数量,我们test时的batchsize是50,这里输入10,表示会提取50*10=500张图片的特征
3.)imageNet网络有很多层(data conv1 conv2 conv3 conv4 conv5 fc6 fc7 fc8 prob),我们可以选取任意一层;fc7是最后一层特征,fc8输出的就是softmax的输出了,所以提取fc7层
4.)lmdb:输出的数据格式是lmdb,还可以是leveldb
-------------------------------------------------------------------------------------------------------
Test测试(用cmdcaffe命令行)(train_test.prototxt + caffemodel)
caffe test 命令通过在 test phase 中运行模型得到分数,并且用这分数表示网络输出的最终结果。网络结构必须被适当定义,生成accuracy或loss作为其结果。测试过程中,终端会显示每个 batch的得分,最后输出全部 batch 得分的平均值。
# 对于网络结构文件 lenet_train_test.prototxt所定义的网络
# 用 validation set 得到已训练的 image_test 模型的分数
./build/tools/caffe test -model examples/image_test/train_val.prototxt -weights examples/image_test/caffenet_train/caffenet_train_iter_10000.caffemodel
Test分类单个输入图像
利用训练好的模型,预测结果,5个输入参数(train_val.prototxt + caffemodel + mean.binaryproto + synset_words.txt + cat.jpg)
test指定图像,输出结果
sudo ./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
测试ilsvrc12
./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
---------- Prediction for examples/images/cat.jpg ----------
0.3134 - "n02123045 tabby, tabby cat"
0.2380 - "n02123159 tiger cat"
0.1235 - "n02124075 Egyptian cat"
0.1003 - "n02119022 red fox, Vulpes vulpes"
0.0715 - "n02127052 lynx, catamount"