标签: caffe

如何验证CuDNN安装?

我搜索了很多地方,但我得到的是如何安装它,而不是如何验证它是否已安装.我可以验证我的NVIDIA驱动程序已安装,并且已安装CUDA,但我不知道如何验证是否已安装CuDNN.非常感谢帮助,谢谢!

PS.
这是为了实现caffe.目前一切正常,没有启用CuDNN.

cuda computer-vision caffe conv-neural-network cudnn

128
推荐指数
12
解决办法
30万
查看次数

训练期间nans的常见原因

我注意到在培训期间经常出现这种情况NAN.

通常情况下,内部产品/完全连接或卷积层中的重量似乎会被引入.

这是因为梯度计算正在爆发吗?或者是因为重量初始化(如果是这样,为什么重量初始化会产生这种效果)?或者它可能是由输入数据的性质引起的?

这里的首要问题很简单:在培训期间发生NAN的最常见原因是什么?其次,有什么方法可以解决这个问题(为什么它们有效)?

machine-learning neural-network gradient-descent deep-learning caffe

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

Google Deep Dream - 使用课程"控制梦想"

背景

我一直在玩,Deep DreamInceptionism使用Caffe框架来可视化层GoogLeNet,这是一个为Imagenet项目构建的架构,一个专为视觉对象识别而设计的大型可视化数据库.

Imagenet可以在这里找到:Imagenet 1000类.


为了探究架构并产生"梦想",我使用了三个笔记本:

  1. https://github.com/google/deepdream/blob/master/dream.ipynb

  2. https://github.com/kylemcdonald/deepdream/blob/master/dream.ipynb

  3. https://github.com/auduno/deepdraw/blob/master/deepdraw.ipynb


这里的基本思想是从模型或"指南"图像中提取指定图层中每个通道的一些特征.

然后我们将我们希望修改的图像输入到模型中,并在指定的同一层中提取特征(对于每个八度音阶),增强最佳匹配特征,即两个特征向量的最大点积.


到目前为止,我已经设法使用以下方法修改输入图像和控制梦想:

  • (a)将图层用作'end'输入图像优化的目标.(见功能可视化)
  • (b)使用第二图像来指导输入图像上的de优化目标.
  • (c)可视化Googlenet由噪声产生的模型类.

但是,我想要实现的效果介于这些技术之间,我没有找到任何文档,论文或代码.

期望的结果

要使一个属于给定'end'层的单个类或单元(a)引导优化目标(b)并使该类在输入图像上可视化(c):

一个例子,其中class = 'face'input_image = 'clouds.jpg':

在此输入图像描述 请注意:上面的图像是使用面部识别模型生成的,该模型未经过Imagenet数据集培训.仅用于演示目的.


工作代码

方法(a)

from cStringIO import StringIO
import numpy as np
import scipy.ndimage as nd
import PIL.Image
from IPython.display import clear_output, Image, display
from google.protobuf …
Run Code Online (Sandbox Code Playgroud)

deep-learning caffe conv-neural-network deep-dream imagenet

71
推荐指数
1
解决办法
1940
查看次数

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万
查看次数

找到关于输入的Caffe conv滤波器的梯度

我需要在卷积神经网络(CNN)中找到关于单个卷积滤波器的输入层的梯度,作为可视化滤波器的方法.
给定Caffe的Python接口中经过训练的网络(例如本示例中的网络),如何根据输入层中的数据找到conv-filter的渐变?

编辑:

根据cesans回答,我添加了以下代码.我输入图层的尺寸是[8, 8, 7, 96].我的第一个转换层conv1有11个过滤器,大小为1x5,导致尺寸[8, 11, 7, 92].

net = solver.net
diffs = net.backward(diffs=['data', 'conv1'])
print diffs.keys() # >> ['conv1', 'data']
print diffs['data'].shape # >> (8, 8, 7, 96)
print diffs['conv1'].shape # >> (8, 11, 7, 92)
Run Code Online (Sandbox Code Playgroud)

从输出中可以看出,返回的数组net.backward()的尺寸等于Caffe中我的图层的尺寸.经过一些测试后,我发现这个输出分别是data层和conv1层的损耗梯度.

但是,我的问题是如何根据输入层中的数据找到单个转换滤波器的梯度,这是另外的.我怎样才能做到这一点?

c++ python neural-network deep-learning caffe

36
推荐指数
2
解决办法
6650
查看次数

什么是Caffe中的'lr_policy`?

我只是试着找出如何使用Caffe.为此,我只是看了一下.prototxt示例文件夹中的不同文件.有一个我不明白的选择:

# The learning rate policy
lr_policy: "inv"
Run Code Online (Sandbox Code Playgroud)

可能的值似乎是:

  • "fixed"
  • "inv"
  • "step"
  • "multistep"
  • "stepearly"
  • "poly"

有人可以解释一下这些选择吗?

machine-learning neural-network gradient-descent deep-learning caffe

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

convert_imageset.cpp指南

我对机器学习/ python/ubuntu比较新.

我有一组.jpg格式的图像,其中一半包含我想要学习的功能,一半不需要.我找不到将它们转换为所需的lmdb格式的方法.

我有必要的文本输入文件.

我的问题是,任何人都可以提供有关如何convert_imageset.cpp在ubuntu终端中使用的分步指南吗?

谢谢

machine-learning image-processing computer-vision deep-learning caffe

33
推荐指数
1
解决办法
3万
查看次数

解决阶级失衡问题:缩减对损失和sgd的贡献

(已添加此问题的更新.)

我是比利时根特大学的研究生; 我的研究是用深度卷积神经网络进行情感识别.我正在使用Caffe框架来实现CNN.

最近我遇到了关于班级失衡的问题.我正在使用9216个训练样本,约 5%标记为阳性(1),其余样品标记为阴性(0).

我正在使用SigmoidCrossEntropyLoss图层来计算损失.在训练时,即使在几个时期之后,损失也会减少并且准确度非常高.这是由于不平衡:网络总是预测为负(0).(精确度和召回率均为零,支持此声明)

为了解决这个问题,我想根据预测 - 真值组合衡量对损失的贡献(严厉惩罚假阴性).我的导师/教练还建议我通过随机梯度下降(sgd)反向传播时使用比例因子:该因子将与批次中的不平衡相关联.仅包含负样本的批次根本不会更新权重.

我只向Caffe添加了一个自定义图层:报告其他指标,如精度和召回.我对Caffe代码的经验有限,但我有很多编写C++代码的专业知识.


任何人都可以帮助我或指出我如何调整SigmoidCrossEntropyLossSigmoid层以适应以下变化:

  1. 根据预测 - 真值组合调整样本对总损失的贡献(真阳性,假阳性,真阴性,假阴性).
  2. 根据批次中的不平衡(负数与正数)来衡量随机梯度下降所执行的权重更新.

提前致谢!


更新

按照Shai的建议加入了InfogainLossLayer.我还添加了另一个自定义层,H根据当前批次中的不平衡构建了infogain矩阵.

目前,矩阵配置如下:

H(i, j) = 0          if i != j
H(i, j) = 1 - f(i)   if i == j (with f(i) = the frequency of class i in the batch)
Run Code Online (Sandbox Code Playgroud)

我计划将来为矩阵试验不同的配置.

我已经用10:1的不平衡测试了这个.结果表明网络现在正在学习有用的东西:( 30个时期后的结果)

  • 准确度约为.~70%(低于~97%);
  • 精度约为 ~20%(从0%起);
  • 召回是约.~60%(从0%上调). …

c++ machine-learning neural-network deep-learning caffe

32
推荐指数
1
解决办法
7921
查看次数

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万
查看次数