caffe相关内容
在Caffe中训练时,每次迭代都有训练和测试净输出.我知道这就是损失.但是,这是我的批次中的平均损失还是总损失?对分类和回归而言是否一样? 例如,如果我要批处理100个训练示例,而那次迭代的损失是100,那是否意味着每个示例的平均损失是1? 解决方案 火车损失是上一次训练批次的平均损失.这意味着,如果您的微型批次中有100个训练示例,而您在该迭代中的损失为100,则每个示例的平均损失
..
我知道此示例应该说明如何使用add_blob()方法在 Python层中添加可训练的参数. 但是,我仍然无法理解如何将其用于基于用户定义的参数设置Blob的尺寸. 这里有一个关于如何编写Python图层的更好的示例 请说明如何编写具有可训练参数的自定义Python层. 解决方案 使用add_blob()添加参数blob时,可以reshape添加的blob,可以使用setup(
..
我是咖啡新手.谢谢你们! 在 https://github.com/BVLC中/caffe/blob/master/src/caffe/proto/caffe.proto 我看到1个未注释的枚举可变阶段.它有2个选项TRAIN和TEST. enum Phase { TRAIN = 0; TEST = 1; } 它们是如何工作的?我最近看到一个模型也具有这两个阶段.
..
我正在使用BatchNorm层.我知道设置use_global_stats的含义,通常将false设置为训练,将true设置为测试/部署.这是我在测试阶段的设置. layer { name: "bnorm1" type: "BatchNorm" bottom: "conv1" top: "bnorm1" batch_norm_param { use_global_
..
我正在使用caffe(CNN)库('bvlc_reference_caffenet.caffemodel')所提供的预训练图像网络模型.使用此模型,我可以为任何图像输出一个1000的物体分数的暗淡矢量. 但是我不知道实际的对象类别是什么.有人找到了列出相应对象类别的文件吗? 解决方案 您应该查找文件'synset_words.txt',它有1000行,每行提供了一个不同类的描述.
..
我正在finetuning在Tesla K40上的图像数据集上使用Caffe.使用batch size=47,solver_type=SGD,base_lr=0.001,lr_policy="step",momentum=0.9,gamma=0.1,在100迭代中training loss会减小,而test accuracy从2%-50%开始,这是相当不错的. 当使用其他优化器(例如RMSP
..
我正在使用caffe框架,我想训练下一个网络: 当我执行下一条命令时: 咖啡训练--solver resolver.prototxt 它引发的错误: `F0802 14:31:54.506695 28038 insert_splits.cpp:29] Unknown bottom blob 'image' (layer 'conv1', bottom index 0) **
..
我想知道为什么我的测试精度始终保持为0.5的恒定值.我使用CaffeNet网络时,仅更改了配置 num_output:2 的完全连接层的参数. 我的训练集包含1000个阳性和1000个阴性示例,而我的验证集也包含1000个阳性和1000个阴性示例.数据集包含人物图像(全身RGB彩色).我已经在数据层中定义了平均文件和小数位值.我的网络经过训练可以学习一个人或不一个人(二进制分类器).
..
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中定义乘常数层(如Torch中的MulConstant).我需要将其预定义的const添加到现有网络中. Caffe无法解析我将所有内容缩放0.85的尝试: layers { name: "caffe.ConstantMul_0" type: "Eltwise" bottom: "caffe.SpatialConvolution_0" top: "caffe.
..
在此教程中,输出量在输出[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] .到目前为止一切都
..
当迭代次数达到一定次数时,我想更改损耗层中的损耗计算方法. 为了实现这一点,我认为我需要获得当前的学习率或迭代次数,然后使用if短语来选择是否更改损耗计算方法. 解决方案 您可以在 Caffe类中添加成员变量以保存当前的学习率或迭代时间,并在您所在的图层中进行访问想要. 例如,要获得您想要的当前迭代时间,您需要进行3个关键修改(为简化起见): 在 common.hpp 中:
..
我正在处理数量有限的大尺寸图像,每个图像都可以具有3072*3072像素.为了使用FCN或U-net训练语义分割模型,我构造了大量的训练集样本,每个训练图像均为128*128. 在预测阶段,我要做的是将大图像切成小块,与128*128的训练集相同,然后将这些小块输入训练过的模型中,得到预测的蒙版.然后,我将这些小补丁缝在一起,以得到整个图像的蒙版.这是对大图像执行语义分割的正确机制吗?
..
我正在修改 Caffe教程来实现神经网络,但是我正在努力确定一些pycaffe模块的位置,以便查看某些功能定义. 例如,本教程提到: import caffe from caffe import layers a L, params as P .... L.Convolution(bottom, kernel_size=ks, stride=stride, num_output=nou
..
我正在尝试使用Alexnet计数图像中的对象. 我目前的图像中每个图像包含1、2、3或4个对象.对于初始检查,我每个班级有10张图像.例如,在训练集中,我有: image label image1 1 image2 1 image3 1 ... image39 4 image40 4 我使用imagenet创建脚本为此数据集创建了一个lmdb文件.这成功地将我的一组图像转换
..
尝试在我自己的数据集上训练LeNet.我从长的一维矢量数据集中生成了HDF5文件,并按如下所示创建了HDF5数据层:我对顶部Blob的命名与生成HDF5时的命名相同. name: "Test_net" layer { name: "data" type: "HDF5Data" top: "Inputdata" top: "label" hdf5_data_param {
..
我正在尝试训练caffe模型.出现此错误 I0806 09:41:02.010442 2992 sgd_solver.cpp:105] Iteration 360, lr = 9.76e- 05 F0806 09:41:20.544955 2998 data_transformer.cpp:168] Check failed: height
..
我在训练数据时收到以下错误.我已经尝试了Internet上提供的所有解决方案,但似乎没有任何工作对我有用.我检查了路径,并且lmdb文件的大小不为零.但是问题仍然存在.我不知道如何解决这个问题. pooling_ I0411 12:42:53.114141 21769 layer_factory.hpp:77] Creating layer data I0411 12:42:53.11458
..
我想知道如果我有一个生成底部斑点的层,该斑点会被随后的两个后续层进一步消耗,这两个层都会在向后传播阶段生成一些渐变以填充bottom.diff.是否将两个梯度加起来形成最终的梯度?还是只有其中一个可以生存?以我的理解,Caffe层需要先将bottom.diff设置为全零,然后再填充一些计算出的渐变,对吗? memset会否清除另一层已经计算出的渐变?谢谢! 解决方案 使用一个以上的损失层并
..
我想在caffe的某些卷积层中禁用向后计算,该怎么做? 我使用了propagate_down设置,但是发现它适用于fc层但不适用于卷积层. 请帮助〜 首次更新:我在 test/pool_proj 层中设置了 propagate_down:false .我不希望它向后(但其他层向后).但是从日志文件中说,该层仍然需要向后移动. 第二次更新:让我们表示一个深度学习模型,从输入层到输
..