标签: pycaffe

caffe/pycaffe的备忘单?

有谁知道所有重要的pycaffe命令是否有备忘单?到目前为止,我只使用matlab接口和终端+ bash脚本来使用caffe.

我想转向使用ipython并完成ipython笔记本示例.但是我发现很难概述python的caffe模块中的所有函数.(我也是python的新手).

ipython-notebook caffe pycaffe

44
推荐指数
2
解决办法
3万
查看次数

更快的RCNN用于TensorFlow

有没有人为TensorFlow版本实现FRCNN?我找到了一些相关的回购如下:

  1. 实现roi池层
  2. 基于py-faster-rcnn repo实现快速RCNN

但是对于1:假设roi池层工作(我还没有尝试过),并且需要实现如下内容:

  • ROI数据层,例如roidb.
  • 线性回归,例如SmoothL1Loss
  • 用于端到端训练的ROI池层后处理,其应该将ROI池层的结果转换为用于分类器的CNN.

对于2:em ....,它似乎基于py-faster-rcnn,它基于Caffe准备预处理(例如roidb)并将数据输入Tensorflow来训练模型,看起来很奇怪,所以我可能没试过它.

所以我想知道的是,Tensorflow将来支持更快的RCNN吗?如果没有,我是否有任何误解上面提到的?或有任何回购或有人支持?

detection caffe pycaffe tensorflow

44
推荐指数
1
解决办法
2万
查看次数

NameError:未定义名称"get_ipython"

我正在使用Caffe框架并使用PyCaffe接口.我正在使用从转换IPython Notebook 00-classification.ipynb获得的Python脚本,用于通过ImageNet的训练模型测试分类.但是脚本中的任何get_ipython()语句都会出现以下错误:

$ python python/my_test_imagenet.py 
Traceback (most recent call last):
  File "python/my_test_imagenet.py", line 23, in <module>
    get_ipython().magic(u'matplotlib inline')
Run Code Online (Sandbox Code Playgroud)

在脚本中,我正在导入以下内容:

import numpy as np
import matplotlib.pyplot as plt

get_ipython().magic(u'matplotlib inline')

# Make sure that caffe is on the python path:
caffe_root = '/path/to/caffe/'
import sys
sys.path.insert(0, caffe_root + 'python')

import caffe

plt.rcParams['figure.figsize'] = (10, 10)
plt.rcParams['image.interpolation'] = 'nearest'
plt.rcParams['image.cmap'] = 'gray'

import os

# ... Rest of the code...
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个错误吗?

python ipython caffe pycaffe

31
推荐指数
3
解决办法
5万
查看次数

在python中构建自定义Caffe层

解析了许多关于在Python中构建Caffe图层的链接后,我仍然难以理解一些概念.有人可以澄清一下吗?

我仍然缺少的是:

  1. setup()方法:我应该在这做什么?为什么在例子中我应该将'底部'参数的长度与'2'进行比较?为什么它应该是2?它似乎不是批量大小,因为它是随意的?据我所知,底部是blob,然后第一个维度是批量大小?
  2. reshape()方法:据我所知'底部'输入参数是下层的blob,'top'参数是上层的blob,我需要根据我的计算的输出形状重新形成顶层.但是,如果这些形状不是从传递变为传球,只有重量变化,为什么我需要在每个前进传球中执行此操作?
  3. reshapeforward方法有0个索引用于'top'输入param使用.为什么我需要使用top[0].data=...top[0].input=...代替top.data=...top.input=...?这个指数怎么样?如果我们不使用此顶级列表的其他部分,为什么以这种方式暴露它?我可以怀疑它或C++骨干的巧合,但确切地知道它会很好.
  4. reshape() 方法,符合:

    if bottom[0].count != bottom[1].count
    
    Run Code Online (Sandbox Code Playgroud)

    我在这做什么 为什么它的尺寸又是2?我在这里算什么?为什么blob(0和1)的两个部分在某些成员(count)的数量上应该相等?

  5. forward() 我用这条线定义的方法:

    self.diff[...] = bottom[0].data - bottom[1].data
    
    Run Code Online (Sandbox Code Playgroud)

    如果我定义它,在前进路径后使用它?我们可以使用吗?

    diff = bottom[0].data - bottom[1].data 
    
    Run Code Online (Sandbox Code Playgroud)

    相反,在这个方法中稍后计算损失,而不是分配self,或者是为了某种目的而完成的?

  6. backward()方法:这是关于什么的for i in range(2):?为什么范围又是2?

  7. backward()方法,propagate_down参数:为什么定义?我的意思是,如果它的真实,渐变应该分配给bottom[X].diff我所看到的,但是为什么有人会调用什么都不会做的方法propagate_down = False,如果它什么都不做而且还在里面循环? …

python neural-network deep-learning caffe pycaffe

18
推荐指数
1
解决办法
9206
查看次数

Caffe中的多类别分类

我想我们可能能够编译一些执行多类别分类的方法的含咖啡因的描述.

通过多类别分类,我的意思是:输入数据包含多个模型输出类别的表示和/或简单地在多个模型输出类别下可分类.

例如,包含猫和狗的图像将为猫和狗预测类别输出(理想地)~1,对于所有其他类别输出~0.

  1. 基于这篇论文,这个陈旧而封闭的PR这个开放的公关,似乎caffe完全有能力接受标签.它是否正确?

  2. 这种网络的构建是否需要使用多个神经元(内积 - > relu - >内积)和softmax层,如本文第13页所述 ; 或者Caffe的ip&softmax目前是否支持多种标签尺寸?

  3. 当我将标签传递给网络时,示例将说明正确的方法(如果不是两者)?:

    例如猫吃苹果注意:Python语法,但我使用c ++源代码.

    第0列 - 类输入; 第1列 - 类不在输入中

    [[1,0],  # Apple
     [0,1],  # Baseball
     [1,0],  # Cat
     [0,1]]  # Dog
    
    Run Code Online (Sandbox Code Playgroud)

    要么

    第0列 - 类在输入中

    [[1],  # Apple
     [0],  # Baseball
     [1],  # Cat
     [0]]  # Dog
    
    Run Code Online (Sandbox Code Playgroud)

如果有什么不清楚,请告诉我,我将生成我想问的问题的图片示例.

neural-network deep-learning caffe matcaffe pycaffe

14
推荐指数
1
解决办法
4673
查看次数

Caffe:如何获得Python层的阶段?

我在caffe中创建了一个"Python"图层"myLayer",并在网中使用它train_val.prototxt我像这样插入图层:

layer {
  name: "my_py_layer"
  type: "Python"
  bottom: "in"
  top: "out"
  python_param {
    module: "my_module_name"
    layer: "myLayer"
  }
  include { phase: TRAIN } # THIS IS THE TRICKY PART!
}
Run Code Online (Sandbox Code Playgroud)

现在,我的图层只参与网络的TRAINing阶段,
我怎么知道在我的图层的setup功能?

class myLayer(caffe.Layer):
  def setup(self, bottom, top):
     # I want to know here what is the phase?!!
  ...
Run Code Online (Sandbox Code Playgroud)

PS,
我在"Caffe Users"谷歌小组上发布了这个问题.如果有什么东西在那里,我会更新.

python neural-network deep-learning caffe pycaffe

10
推荐指数
2
解决办法
3623
查看次数

caffe数据层示例一步一步

我想找一个要学习的caffe python数据层示例.我知道Fast-RCNN有一个python数据层,但由于我不熟悉对象检测,所以它相当复杂.
所以我的问题是,是否有一个python数据层示例,我可以学习如何定义自己的数据准备过程?
例如,如何定义python数据层比caffe做更多的数据扩充(例如转换,旋转等)"ImageDataLayer".

非常感谢你

neural-network deep-learning caffe pycaffe

10
推荐指数
2
解决办法
7651
查看次数

Caffe迭代损失与火车净损失

我正在使用caffe在底部训练一个带有Euclidean损失层的CNN,并且我的solver.prototxt文件被配置为每100次迭代显示一次.我看到这样的事情,

Iteration 4400, loss = 0
I0805 11:10:16.976716 1936085760 solver.cpp:229]     Train net output #0: loss = 2.92436 (* 1 = 2.92436 loss)
Run Code Online (Sandbox Code Playgroud)

我对迭代损失和火车净损失之间的差异感到困惑.通常迭代损失非常小(大约为0),并且列车净输出损失稍微大一些.有人可以澄清一下吗?

python euclidean-distance neural-network caffe pycaffe

8
推荐指数
1
解决办法
4831
查看次数

使用Caffe进行多标签分类

我想微调GoogLeNet与Caffe进行多标签分类.我已经将它调整为单标签分类,但我还是无法过渡到多标签.

我正在做的主要步骤是不同的:

为数据和地面真相创建LMDB

我在这里这里修改代码,用数据创建一个LMDB,另一个用基础事实创建.

用SigmoidCrossEntropyLoss替换SoftmaxWithLoss

更新train_val.prototxt,我将SoftmaxWithLoss图层替换为SigmoidCrossEntropyLoss,并设置数据图层以便加载两个DB.我设置了学习率参数,就像我对单标签分类问题所做的那样.

这些步骤似乎有效.数据流,可以执行solver.step(1).为了验证数据和标签是否正确加载,我已使用公式明确计算了损失,并得到了与Caffe相同的结果.

问题

网络没有收敛.运行几个迭代的hundrads,每个不同的类平均围绕类群.也就是说,如果类a在群体中具有0.35 1和0.65 0,则无论真实标签如何,网络将收敛到每个观察的~0.35分类概率.

可能的错误1

我怀疑问题是因为我无法以GoogLeNet预训练模型可以从中学习的方式将图像正确加载到caffe中.我之前的经验是convert_imageset,它完美无缺.现在我正在使用shelhamer代码将图像保存到LMDB中:

im = np.array(Image.open(os.path.join(data_dir,in_)))
im = im[:,:,::-1]
im = im.transpose((2,0,1))
im_dat = caffe.io.array_to_datum(im)
in_txn.put('{:0>10d}'.format(in_idx), im_dat.SerializeToString())
Run Code Online (Sandbox Code Playgroud)

我在加载图像时规范化数据层中的均值.那似乎对吗?还有另一种方法吗?

可能的错误2

也可能是train_val.prototxt定义错误.除了切换SoftmaxWithLoss - > SigmoidCrossEntropyLoss之外还有什么需要做的吗?

任何帮助将不胜感激!谢谢!

deep-learning lmdb caffe pycaffe

8
推荐指数
1
解决办法
1452
查看次数

PyInstaller"ValueError:解压缩的值太多了"

Pyinstaller版本3.2

操作系统:win10


我的python脚本在Winpython Python Interpreters中运行良好.

但是当我使用Pyinstaller包时,python脚本包含caffe模块,我将面临这样的问题: "你可以加载I/O插件skimage.io.use_plugin"

我按照上面的答案来修复我的spec文件(钩子文件??).我一直在收到以下错误:(ValueError:要解压的值太多)

Traceback (most recent call last):
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\runpy.py", line 72, in _run_code
exec code in run_globals
File "D:\Python\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\Scripts\pyinstaller.exe\__main__.py", line 9, in <module>
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\PyInstaller\__main__.py", line 90, in run
run_build(pyi_config, spec_file, **vars(args))
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\PyInstaller\__main__.py", line 46, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\PyInstaller\building\build_main.py", line 788, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\PyInstaller\building\build_main.py", line 734, in build
exec(text, spec_namespace)
File "<string>", line …
Run Code Online (Sandbox Code Playgroud)

python pyinstaller caffe pycaffe

8
推荐指数
1
解决办法
3857
查看次数