- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有谁知道是否有所有重要 pycaffe 命令的备忘单?到目前为止,我仅通过 Matlab 界面和终端 + bash 脚本使用 caffe。
我想转向使用 ipython 并完成 ipython 笔记本示例。然而,我发现很难概述 python 的 caffe 模块内的所有函数。 (我对 python 也很陌生)。
最佳答案
pycaffe tests和 this file是通往 Python 编码接口(interface)的主要门户。
首先,您需要选择是使用CPU还是GPU的Caffe。分别调用 caffe.set_mode_cpu()
或 caffe.set_mode_gpu()
就足够了。
pycaffe接口(interface)公开的主要类是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
访问网络blob。例如
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')
求解器
将封装您正在训练的网络以及用于测试的网络(如果存在)。请注意,它们通常是同一网络,只是具有不同的数据层。网络可通过以下方式访问
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 Layer type 。这些功能不太常用,但通过阅读测试用例很容易理解。
关于jupyter-notebook - caffe/pycaffe 备忘单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32379878/
可以在pycaffe 中使用以下行的hdf5 数据层编写caffe prototxt: import caffe from caffe import layers as L def logreg(hd
我为二进制分类微调了 vgg-16。我使用 sigmoidLoss 层作为损失函数。 为了测试模型,我编写了一个 python 文件,在该文件中我用图像加载模型并使用以下命令获取输出: out = n
查看this PR ,我看到可以为 caffe.Solver 对象定义 on_start 和 on_gradient 回调。 import caffe solver = caffe.AdamSolve
有谁知道是否有所有重要 pycaffe 命令的备忘单?到目前为止,我仅通过 Matlab 界面和终端 + bash 脚本使用 caffe。 我想转向使用 ipython 并完成 ipython 笔记本
我是 Caffe 的新手,它的工作流程与我之前遇到的有很大不同。我用过 keras , sklearn , fann (C++) 之前用于神经网络,我想使用 Caffe,因为它提供了一些额外的东西。但
我可以使用名称访问网络中的 blob。例如: net.blobs['data'].data.shape 返回上一层的形状。 有没有办法通过索引访问图层?我尝试了以下方法: net.blobs[1].
我已经在网络和 caffe 源代码中搜索了一段时间,没有任何解决方案可言,但在自定义应用程序神经网络中,我正在构建一些 custom layers in python .正向传递和反向传递在功能上运行
在训练了 CNN 的一些权重后,我决定使用相同的网络架构来进行预测。我将数据设置为 batch_size = 64。 我可以正确运行 pred_net.forward() 函数,并且可以从 blobs
我在 MacOS 10.13.3 (17D47) 上使用 Python 2.7.14。我正在用 python 构建 caffe。该项目仅为 CPU。我可以通过 make run test 构建 caf
是否可以为 Caffe(尤其是 pyCaffe)设置所有 GPU? 就像是: caffe train -solver examples/mnist/lenet_solver.prototxt -gpu
我正在尝试将预训练模型的大小为 3x3x3 的层“con_1”的学习权重复制到新层“con_1_1”,以便新层的大小为 6x3x3(6 个 channel )。我实际上是在尝试将大小为 3x3x3 的
下面是用于训练预训练模型的 train.Prototxt 文件。 name: "TempWLDNET" layer { name: "data" type: "
下面是用于训练预训练模型的 train.Prototxt 文件。 name: "TempWLDNET" layer { name: "data" type: "
我有一些名为 net 的 CNN,我想知道它的 blob 类型或层名称。 例如,我可以轻松访问 blob 名称和后续 blob: for blob in net.blobs: print(bl
我正在尝试使用 Anaconda 3 和 Visual studio 2013 在 Windows 7 中编译 pycaffe。我已正确设置 anaconda 路径和 lib 路径。当我尝试构建时出现
我正在做一个项目,使用 IntelCaffe。但是当我运行我的 python 代码时: import sys CAFFE_ROOT = '/path/to/caffe/' sys.path.inser
如何通过pycaffe更改Caffe中的求解器参数? 例如。调用 solver = caffe.get_solver(solver_prototxt_filename) 后立即我想更改求解器的参数(学
我想尝试使用 pycaffe 接口(interface)来训练 caffe 模型。 特别是我想使用 python 层来输入数据。 这种训练会很慢还是 pycaffe 只是充当实际 caffe 的接口(
我在 python 中创建了一个自定义层,以便我可以直接提供数据。 但我注意到它运行速度非常慢,GPU 使用率最多为 1%(内存已分配,即我可以看到,当我运行脚本时,它分配 2100MB VRAM 并
我正在使用 pycaffe 来创建我的网络,并且想使用泄漏层 relu 而不是普通层,我该如何将其放入函数参数中? from caffe import layers als L, params as
我是一名优秀的程序员,十分优秀!