有没有人知道所有重要的pycaffe命令都有一个小抄?到目前为止,我只通过Matlab界面和终端+ bash脚本使用caffe。
我想转到使用ipython,并完成ipython笔记本示例。但是,我发现很难全面了解python的caffe模块中的所有函数。(我也是python的新手)。
发布于 2015-09-11 02:16:05
pycaffe tests和this file是python编码接口的主要网关。
首先,您希望选择将Caffe与CPU或GPU一起使用。分别调用caffe.set_mode_cpu()或caffe.set_mode_gpu()就足够了。
Net
pycaffe接口公开的主类是Net。它有两个构造函数:
net = caffe.Net('/path/prototxt/descriptor/file', caffe.TRAIN)它只是创建一个Net (在本例中使用指定用于训练的数据层),或者
net = caffe.Net('/path/prototxt/descriptor/file', '/path/caffemodel/weights/file', caffe.TEST)它创建一个Net并自动加载保存在所提供的caffemodel文件中的权重-在本例中使用指定用于测试的数据层。
Net对象有几个属性和方法。可以在here中找到它们。我将只列举我经常使用的那些。
您可以通过Net.blobs访问网络blobs。例如。
data = net.blobs['data'].data
net.blobs['data'].data[...] = my_image
fc7_activations = net.blobs['fc7'].data您也可以以类似的方式访问参数(权重)。例如。
nice_edge_detectors = net.params['conv1'].data
higher_level_filter = net.params['fc7'].data好了,现在是时候向网络提供一些数据了。因此,您将使用backward()和forward()方法。因此,如果您想对单个图像进行分类
net.blobs['data'].data[...] = my_image
net.forward() # equivalent to net.forward_all()
softmax_probabilities = net.blobs['prob'].data如果有人对计算梯度感兴趣,那么backward()方法是等效的。
您可以保存净权重,以便以后重新使用它们。这只是一个
net.save('/path/to/new/caffemodel/file')求解器
pycaffe公开的另一个核心组件是Solver。有几种类型的求解器,但为了清楚起见,我将只使用SGDSolver。它是训练咖啡因模型所必需的。可以使用以下命令实例化求解器
solver = caffe.SGDSolver('/path/to/solver/prototxt/file')Solver将封装您正在训练的网络以及用于测试的网络(如果存在)。请注意,它们通常是相同的网络,只是具有不同的数据层。可以通过以下方式访问这些网络
training_net = solver.net
test_net = solver.test_nets[0] # more than one test net is supported然后,您可以执行求解器迭代,即具有权重更新的向前/向后传递,只需输入
solver.step(1)或者运行求解器直到最后一次迭代,
solver.solve()其他功能
注意,pycaffe允许您做更多的事情,比如specifying the network architecture through a Python class或creating a new type。这些功能较少使用,但通过阅读测试用例可以很容易地理解它们。
发布于 2016-07-18 10:59:08
请注意,Flavio Ferrara的答案有一个小问题,可能会让你浪费很多时间:
net.blobs['data'].data[...] = my_image
net.forward()如果您的第一层是数据类型层,则上面的代码是无效的,因为当调用net.forward()时,它将从第一层开始,然后覆盖您插入的数据my_image。所以它不会显示错误,但会给出完全不相关的输出。正确的方法是指定起始层和结束层,例如:
net.forward(start='conv1', end='fc')
这是一个基于LFW数据集的人脸验证实验的Github存储库,使用pycaffe和一些matlab代码。我想这可能会有很大帮助,特别是caffe_ftr.py文件。
https://github.com/AlfredXiangWu/face_verification_experiment
此外,以下是使用pycaffe进行图像分类的一些简短示例代码:
http://codrspace.com/Jaleyhd/caffe-python-tutorial/ http://prog3.com/sbdm/blog/u011762313/article/details/48342495
https://stackoverflow.com/questions/32379878
复制相似问题