栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Caffe / Pycaffe速查表?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Caffe / Pycaffe速查表?

该pycaffe测试和这个文件的主要门户,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对象具有几种属性和方法。他们可以在这里找到。我只会引用我经常使用的内容。

您可以通过来访问网络Blob Net.blobs。例如

data = net.blobs['data'].datanet.blobs['data'].data[...] = my_imagefc7_activations = net.blobs['fc7'].data

您也可以类似的方式访问参数(权重)。例如

nice_edge_detectors = net.params['conv1'].datahigher_level_filter = net.params['fc7'].data

好的,现在是时候向网络提供一些数据了。因此,您将使用backward()和forward()方法。因此,如果您要对单个图像进行分类

net.blobs['data'].data[...] = my_imagenet.forward() # equivalent to net.forward_all()softmax_probabilities = net.blobs['prob'].data

backward()如果对计算梯度感兴趣,则该方法是等效的。

您可以保存净重,以随后再使用它们。这只是一个问题

 net.save('/path/to/new/caffemodel/file')

解算器
pycaffe暴露的另一个核心组件是Solver。有几种类型的求解器,但是SGDSolver为了清楚起见,我将仅使用它。为了训练Caffe模型,这是必需的。您可以使用实例化求解器

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允许您执行更多操作,例如通过Python类指定网络体系结构或创建新的Layer类型。这些功能很少使用,但是通过阅读测试用例就很容易理解。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/645105.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号