caffe相关内容

Caffe Train/Test的净输出是什么意思?

在Caffe中训练时,每次迭代都有训练和测试净输出.我知道这就是损失.但是,这是我的批次中的平均损失还是总损失?对分类和回归而言是否一样? 例如,如果我要批处理100个训练示例,而那次迭代的损失是100,那是否意味着每个示例的平均损失是1? 解决方案 火车损失是上一次训练批次的平均损失.这意味着,如果您的微型批次中有100个训练示例,而您在该迭代中的损失为100,则每个示例的平均损失 ..
发布时间:2020-05-04 10:03:34 AI人工智能

在Caffe中编写具有可学习参数的自定义Python层

我知道此示例应该说明如何使用add_blob()方法在 Python层中添加可训练的参数. 但是,我仍然无法理解如何将其用于基于用户定义的参数设置Blob的尺寸. 这里有一个关于如何编写Python图层的更好的示例 请说明如何编写具有可训练参数的自定义Python层. 解决方案 使用add_blob()添加参数blob时,可以reshape添加的blob,可以使用setup( ..

caffe中预训练的imagenet模型的对象类别

我正在使用caffe(CNN)库('bvlc_reference_caffenet.caffemodel')所提供的预训练图像网络模型.使用此模型,我可以为任何图像输出一个1000的物体分数的暗淡矢量. 但是我不知道实际的对象类别是什么.有人找到了列出相应对象类别的文件吗? 解决方案 您应该查找文件'synset_words.txt',它有1000行,每行提供了一个不同类的描述. ..

训练网络时,Caffe在验证阶段的测试准确性是恒定的

我想知道为什么我的测试精度始终保持为0.5的恒定值.我使用CaffeNet网络时,仅更改了配置 num_output:2 的完全连接层的参数. 我的训练集包含1000个阳性和1000个阴性示例,而我的验证集也包含1000个阳性和1000个阴性示例.数据集包含人物图像(全身RGB彩色).我已经在数据层中定义了平均文件和小数位值.我的网络经过训练可以学习一个人或不一个人(二进制分类器). ..
发布时间:2020-05-04 09:55:22 AI人工智能

Caffe重塑层可以移调吗

Caffe已实现reshape层,但我想先将(1, n, k, p)的blob整形为(1, a, b, k, p),其中n= a*b然后将其转置为形状(1, b, a, k, p),如何实现此操作,我知道我可以编写一个单独的python层,并使用numpy.reshape和numpy.transpose来完成所有这些操作,但这不是很有效,是吗? 解决方案 transpose和reshape ..

Caffe常数乘法层

如何在Caffe中定义乘常数层(如Torch中的MulConstant).我需要将其预定义的const添加到现有网络中. Caffe无法解析我将所有内容缩放0.85的尝试: layers { name: "caffe.ConstantMul_0" type: "Eltwise" bottom: "caffe.SpatialConvolution_0" top: "caffe. ..
发布时间:2020-05-04 09:54:00 AI人工智能

他们如何计算Caffe中这个convnet示例的输出量?

在此教程中,输出量在输出[25]中说明,接受区域在输出[26]中指定. 好吧,输入体积[3, 227, 227]与大小为[3, 11, 11]的区域卷积. 使用此公式 (W−F+2P)/S+1 ,其中: W =输入音量大小 F =接收域大小 P =填充 S =步幅 ...结果为(227 - 11)/4 + 1 = 55,即 [55 * 55 * 96] .到目前为止一切都 ..

在caffe中定义新层时如何获得学习率或迭代时间

当迭代次数达到一定次数时,我想更改损耗层中的损耗计算方法. 为了实现这一点,我认为我需要获得当前的学习率或迭代次数,然后使用if短语来选择是否更改损耗计算方法. 解决方案 您可以在 Caffe类中添加成员变量以保存当前的学习率或迭代时间,并在您所在的图层中进行访问想要. 例如,要获得您想要的当前迭代时间,您需要进行3个关键修改(为简化起见): 在 common.hpp 中: ..

大图像的语义分割

我正在处理数量有限的大尺寸图像,每个图像都可以具有3072*3072像素.为了使用FCN或U-net训练语义分割模型,我构造了大量的训练集样本,每个训练图像均为128*128. 在预测阶段,我要做的是将大图像切成小块,与128*128的训练集相同,然后将这些小块输入训练过的模型中,得到预测的蒙版.然后,我将这些小补丁缝在一起,以得到整个图像的蒙版.这是对大图像执行语义分割的正确机制吗? ..

在Caffe中测试回归网络

我正在尝试使用Alexnet计数图像中的对象. 我目前的图像中每个图像包含1、2、3或4个对象.对于初始检查,我每个班级有10张图像.例如,在训练集中,我有: image label image1 1 image2 1 image3 1 ... image39 4 image40 4 我使用imagenet创建脚本为此数据集创建了一个lmdb文件.这成功地将我的一组图像转换 ..

检查失败:mdb_status == 0(2与0)没有这样的文件或目录

我在训练数据时收到以下错误.我已经尝试了Internet上提供的所有解决方案,但似乎没有任何工作对我有用.我检查了路径,并且lmdb文件的大小不为零.但是问题仍然存在.我不知道如何解决这个问题. pooling_ I0411 12:42:53.114141 21769 layer_factory.hpp:77] Creating layer data I0411 12:42:53.11458 ..

Caffe:如果两个反向支撑渐变到同一底部Blob,将会发生什么?

我想知道如果我有一个生成底部斑点的层,该斑点会被随后的两个后续层进一步消耗,这两个层都会在向后传播阶段生成一些渐变以填充bottom.diff.是否将两个梯度加起来形成最终的梯度?还是只有其中一个可以生存?以我的理解,Caffe层需要先将bottom.diff设置为全零,然后再填充一些计算出的渐变,对吗? memset会否清除另一层已经计算出的渐变?谢谢! 解决方案 使用一个以上的损失层并 ..

如何防止Caffe中特定图层的向后计算

我想在caffe的某些卷积层中禁用向后计算,该怎么做? 我使用了propagate_down设置,但是发现它适用于fc层但不适用于卷积层. 请帮助〜 首次更新:我在 test/pool_proj 层中设置了 propagate_down:false .我不希望它向后(但其他层向后).但是从日志文件中说,该层仍然需要向后移动. 第二次更新:让我们表示一个深度学习模型,从输入层到输 ..