如何在 caffe 中训练/测试我自己的数据集?

     2023-03-13     146

关键词:

【中文标题】如何在 caffe 中训练/测试我自己的数据集?【英文标题】:How to training/testing my own dataset in caffe? 【发布时间】:2016-10-16 14:36:34 【问题描述】:

我从 Caffe 开始,mnist 示例运行良好。 我的火车和标签数据为data.mat。 (我有 300 个训练数据,其中 30 个特征和标签是 (-1, +1) 保存在 data.mat 中)。

但是,我不太明白如何使用 caffe 来实现自己的数据集?

有没有分步教程可以教我?

非常感谢!!!!任何建议将不胜感激!

【问题讨论】:

【参考方案1】:

我认为将数据从 Matlab 传输到 caffe 最直接的方法是通过 HDF5 文件。

首先,使用hdf5write 将 Matlab 中的数据保存在 HDF5 文件中。我假设您的训练数据存储在大小为 300×30 的变量名称 X 中,而标签存储在 y 一个 300×1 向量中:

hdf5write('my_data.h5', '/X', 
  single( permute(reshape(X,[300, 30, 1, 1]),[4:-1:1]) ) );
hdf5write('my_data.h5', '/label', 
  single( permute(reshape(y,[300, 1, 1, 1]),[4:-1:1]) ), 
  'WriteMode', 'append' );

请注意,数据保存为 4D 数组:第一个维度是特征的数量,第二个是特征的维度,最后两个是 1(表示没有空间维度)。另请注意,HDF5 中数据的名称为 "X""label" - 这些名称应用作输入数据层的 "top" blob。

为什么是permute?解释请见this answer。

您还需要准备一个文本文件,列出您正在使用的所有 hdf5 文件的名称(在您的情况下,只有 my_data.h5)。文件/path/to/list/file.txt 应该只有一行

/path/to/my_data.h5

现在您可以将输入数据层添加到您的 train_val.prototxt

layer 
  type: "HDF5Data"
  name: "data"
  top: "X"     # note: same name as in HDF5
  top: "label" # 
  hdf5_data_param 
    source: "/path/to/list/file.txt"
    batch_size: 20
  
  include  phase: TRAIN 

有关hdf5输入层的更多信息,您可以查看this answer。

【讨论】:

您是否设法使用 Caffe 在 MATLAB 上运行网络训练? @Drazick 抱歉,但我不混合使用 Matlab 和 caffe。 Python 界面更好 我看到你回答了很多困扰 MATLAB 的用户,所以我认为你有一些经验。看起来 MATLAB 界面确实有问题。我有一些在命令行上工作的东西却使 MATLAB 崩溃。 @Drazick 我曾经广泛使用 Matlab,但现在我更像是一个 Python 编码器...... 您有在 MATLAB 上使用 Caffe 的经验吗?谢谢。

跑通caffe-ssddemo代码(训练测试自己数据集)(代码片段)

...我就不多介绍了,CSDN上面一搜一大把。这篇主要讲讲如何跑通caffe代码~github:caffe-ssd一、代码结构在caffe-ssd中能用到的文件我全部在上述图片中标出来了,到时候具体的再细说~caffe-ssd的环境自己百度吧,网上很... 查看详情

如何在 TensorFlow 中使用我自己的数据将图像拆分为测试和训练集

】如何在TensorFlow中使用我自己的数据将图像拆分为测试和训练集【英文标题】:HowtosplitimagesintotestandtrainsetusingmyowndatainTensorFlow【发布时间】:2020-05-2414:54:50【问题描述】:我在这里有点困惑...我刚刚花了一个小时阅读有关如何... 查看详情

Caffe 如何确定测试集的准确性?

】Caffe如何确定测试集的准确性?【英文标题】:HowdoesCaffedeterminetestsetaccuracy?【发布时间】:2017-05-0323:53:39【问题描述】:使用BVLC参考AlexNet文件,我一直在针对我创建的训练集训练CNN。为了衡量训练的进度,我一直在使用一种... 查看详情

caffe的学习和使用·一」--使用caffe训练自己的数据

...做?用caffe训练自己的数据,必须解决的问题有两个:1.如何输入数据,2.如何定义输出首先我们解决第一个问题:训练数据的输 查看详情

5:使用caffe对自己的图像数据进行训练并测试

使用caffe对自己的图像数据进行训练并测试之前实践的一些步骤诸如数据集的准备、数据集的转换等过程都是为了训练我们所需要的模型进行铺垫,我们学习caffe的核心目的是使用caffe对我们自己的数据集进行训练,得到... 查看详情

4:计算图像数据集的均值

计算图像数据集的均值在前一篇文章中我们已经知道了如何将自己的图像数据转换为caffe需要的db文件深度学习文章3:将自己的图像数据转换成caffe需要的db(leveldb/lmdb)文件,在进行模型的训练之前,我们还需要进行一... 查看详情

如何在 Weka 中对训练和测试数据集进行分类

】如何在Weka中对训练和测试数据集进行分类【英文标题】:HowtoperformclassificationontrainingandtestdatasetinWeka【发布时间】:2021-12-0719:09:18【问题描述】:我正在使用Weka软件对模型进行分类。我对使用训练和测试数据集分区感到困惑... 查看详情

Caffe:如何使用已经训练好的模型一次检查多个数据集的准确性?

】Caffe:如何使用已经训练好的模型一次检查多个数据集的准确性?【英文标题】:Caffe:HowtocheckaccuraciesofmultipleDatasetswithalreadytrainedmodelatatime?【发布时间】:2016-11-0413:41:12【问题描述】:在Caffe框架中使用2个类别的10k图像训练LeNe... 查看详情

QDA |训练和测试数据集的长度 |如何拆分训练数据和测试数据?

】QDA|训练和测试数据集的长度|如何拆分训练数据和测试数据?【英文标题】:QDA|lengthsoftrainingandtestdatasets|Howtosplitdataintrainingandtestdata?【发布时间】:2017-02-2005:54:08【问题描述】:在QDA(二次判别分析)中,我需要保持训练和测... 查看详情

用python学习caffe3.图像训练测试数据集lmdb的生成(代码片段)

...做好处是能提高读取图像的时间。而本节的目的在于介绍如何将图像数据生成可用于测试和训练LMDB格式的数据集。3.1原始图像的采集可以通过爬虫等方法从互联网中获得许多张图像(图像格式不限,JPG或者PNG都是可以的&... 查看详情

怎样用自己的数据集对caffe训练好的model进行fineture

...行修改,使之符合自己的需求。最难的就是从零开始设计训练网络模型。题主可以体验一下从零开始设计训练模型,但是不要陷太深。如果题主设计了很好的网络模型,欢迎分享啊根据您的数据量,强烈建议finetune 查看详情

深度学习文章3:将自己的图像数据转换成caffe需要的db(leveldb/lmdb)文件

...建好caffe环境之后,我们往往需要对自己的图像数据进行训练/测试,我们的图像数据往往时图片文件,如jpg,jpeg,png等,然而在caffe中我们需要使用的数据类型是lmdb或leveldb,例如:在之前测试MNIST数据集《深度学习文章2:使用M... 查看详情

caffe学习笔记用caffe跑自己的jpg数据

1收集自己的数据1-1我的训练集与测试集的来源:表情包由于网上一幅一幅图片下载非常麻烦,所以我干脆下载了两个eif表情包。同一个表情包里的图像都有很强的相似性,因此可以当成一类图像来使用。下载个eif解... 查看详情

3:将自己的图像数据转换成caffe需要的db(leveldb/lmdb)文件(代码片段)

...换成caffe框架可以直接使用的db文件,本篇博文主要就如何转换进行详细阐释。1.创建图片清单文件首先我们需要创建一个我们自己图片数据集的清单txt文件,这里我们先以caffe自带的两张图片为例,在caffe目录/examples/i... 查看详情

如何利用bing算法训练自己的模型

参考技术A  在MNIST调用已经训练好的模型,测试。  这个测试,假定可能是新加入的测试集,还是按照原来的需求转换,存放数据到指定的位置。  ./build/tools/caffe.bintest-model=examples/mnist/lenet_train_test.prototxt-weights=examples/mnis... 查看详情

R:如何将数据框拆分为训练集、验证集和测试集?

】R:如何将数据框拆分为训练集、验证集和测试集?【英文标题】:R:Howtosplitadataframeintotraining,validation,andtestsets?【发布时间】:2016-07-0407:08:39【问题描述】:我正在使用R进行机器学习。按照标准的机器学习方法,我想将我的数... 查看详情

如何使用ssd训练自己的数据

可以参照前一篇文章配置windows下的ssd,本文假设ssd已经通过windows下的编译。1.准备数据需要根据PASCALVOC格式准备对应的数据,推荐一个好用的贴标签软件(https://github.com/tzutalin/labelImg)拿VOC2012为例,VOC2012目录下需要Annotations、Image... 查看详情

caffeexample在cifar-10数据集上训练与测试

本文主要来自Caffe作者YangqingJia网站给出的examples。@article{jia2014caffe,Author={Jia,YangqingandShelhamer,EvanandDonahue,JeffandKarayev,SergeyandLong,JonathanandGirshick,RossandGuadarrama,SergioandDarrell,Trevor}, 查看详情