far*_*n4u 0 python computer-vision neural-network caffe conv-neural-network
我想获得预先构建的caffe模型的第6层的输出并在其上训练SVM.我的目的是构建一个自定义图像分类器,用户可以在其中创建自定义图像类,并在这些类之间对输入图像进行分类,而不是imagenet类.这里是伪代码:
#input
file='cat.jpg'
image=caffe.io.load_image(file)
#model
net = caffe.Classifier('deploy.prototxt','model.caffemodel')
#compute activation at layer 6 --- Need help here. Will net.forward help? will the activation be retained?
#extract features from layer 6:
features = net.blobs['fc6'].data[4][:,0, 0]
#SVM
category=svm.predict(features)
print get_category_name(category)
Run Code Online (Sandbox Code Playgroud)
你应该使用Netclass而不是Classifier.因此,你只需要打电话net.forward().
要注意两件事:
Transformer课程以供参考如果您使用just提取功能
features = net.blobs['fc6'].data
Run Code Online (Sandbox Code Playgroud)
您的阵列将被下一次forward()调用覆盖.确保您正在执行深层复制,例如
features = net.blobs['fc6'].data.copy()
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
5005 次 |
| 最近记录: |