当前位置: 首页 > 面试题库 >

Caffe / Pycaffe速查表?

武元白
2023-03-14
问题内容

有人知道所有重要的pycaffe命令是否都有备忘单吗?到目前为止,我仅通过Matlab接口和终端+ bash脚本使用caffe。

我想转向使用ipython并通过ipython笔记本示例进行研究。但是,我发现很难获得python caffe模块内部的所有功能的概述。(我对python也很陌生)。


问题答案:

该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'].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为了清楚起见,我将仅使用它。为了训练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类型。这些功能很少使用,但是通过阅读测试用例就很容易理解。



 类似资料:
  • Caffe 是一个深度学习框架,由表达式,速度和模块化组成。Caffe 是 Berkeley Vision and Learning Center (BVLC) 社区贡献者开发的。在线演示: http://demo.caffe.berkeleyvision.org。国人开发的 Caffe GUI 工具:Huabot Brain。

  • OpenCL-caffe 是 AMD 研究团队开发的 Caffe 版  OpenCL。 性能: Training speed (Model: AlexNet, minibatch size 128) Platform Speed (images per second) AMD W9100 & A10-7850k 255 AMD R9 Fury & A10-7850k 261 AMD R290X @

  • 不支持任意数据类型 Caffe大部分数据结构(如Blob、Layer、Net、Solver及其派生类)都是模板类,通过实例化模板参数来支持多种数据类型。 事实上,Caffe只支持float和double两种类型网络,如果创建Blob实例,则会发现缺少Update()计算实现。 Caffe依赖BLAS库实现基本运算,BLAS不支持的数据类型,Caffe同样不支持。 依赖包复杂 卷积层效率不高 架构问

  • caffe 核心 数据:带标签的数据集,分为训练集和测试集 模型:描述CNN结构的有向无环图,表示对原始数据的处理方式。Caffe模型需要两个重要的参数文件: 网络模型(*.prototxt):定义了网络的每一层行为 参数模型(*.solver.prototxt):定义了网络模型训练过程中需要设置的参数 数据处理 原始数据:caffe并不是直接处理原始数据的,而是由预处理程序将原始数据变换存储为L

  • Caffe,全称 Convolutional Architecture for Fast Feature Embedding,是一个兼具表达性、速度和思维模块化的深度学习框架。

  • 主要内容:HTML 基本文档,基本标签(Basic Tags),文本格式化(Formatting),链接(Links),图片(Images),样式/区块(Styles/Sections),无序列表,有序列表,定义列表,表格(Tables),框架(Iframe),表单(Forms),实体(Entities)HTML 速查列表. 你可以打印它,以备日常使用。 HTML 基本文档 <!DOCTYPE html> <html> <head> <title>文档标题</title> </head> <bo