【caffe2从头学】:3.5.Models and Datasets

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37251044/article/details/82455020

本片文章是我的【caffe2从头学】系列中的一篇,如果想看其他文章,请看目录:


0.目录
1.快速开始

1.1.什么是caffe2 ?
1.2.安装caffe2

2.学习caffe2
3.caffe2官方教程的安装与使用

3.1.Blobs and Workspace, Tensors,Net 概念
3.2.Caffe2 的一些基本概念 - Workspaces&Operators & Nets & Nets 可视化
3.3.Brewing Models(快速构建模型)
3.4.Toy_Regression
3.5.Models and Datasets
3.6.Loading_Pretrained_Models
3.7.Image_Pre-Processing_Pipeline
3.8.MNIST
3.9.create_your_own_dataset

4.参考
5.API

相关代码在我的github仓库:https://github.com/JackKuo666/csdn/tree/master/caffe2


0.Caffe2, Models, and Datasets Overview

在本教程中,我们将尝试使用现有的Caffe模型。在其他教程中,您可以学习如何修改模型或创建自己的模型。您还可以了解如何生成或修改数据集。在这里,您将学习如何查找模型,涉及哪些文件以及如何使用数据集测试模型。

1.Models vs Datasets

让我们确保您了解什么是模型与数据集。让我们先从数据集开始:这是一组数据,可以是任何数据,但通常都有某种主题,例如鲜花图像的集合。要组成数据集,您还需要一些标签:这是一个文件,讲述每个图像并提供某种描述。例如,它可以是属和种,或者它可以是通用名,或者它可以是它的外观,感觉或气味或其某种组合的描述符。在下面的例子中,Mukane&Kendule提出了一种从图像中提取花的方法,使用图像分割image segmentation特征提取feature extraction将主花拉出训练图像,然后他们的分类器使用纹理特征texture features进行匹配matching
  

这里写图片描述

   模型是通过神经网络运行时从数据集中创建的模型。这称为训练,其中神经网络和运行它的计算机从数据集“学习”。它基于与数据集中的其他示例类似的特征以及标签之间的共性等来挑选它可以找到的关于如何识别图像中的显著对象的所有特征。存在多种类型的神经网络,其被设计用于特定目的,其可以创建比其他模型更准确的模型。在鲜花的情况下,并创建一个擅长准确识别它们的模型,我们将选择一个卷积神经网络。我们也会这样做来识别地方的照片。请看下面的交互式示例,其中显示了网络共有的提取区域以及它们如何跨网络层链接在一起。
  
这里写图片描述

2.Evaluating a Model’s Performance

创建模型的常见做法是使用通常称为准确性损失的两个因素来评估其性能。另一种看待这种情况的方法是:

  1. accuracy: how often is it right versus wrong

  2. loss: how often did it fail to recognize anything when it should have

每个用例对这些因素都有不同的容差。如果您正在编写鲜花识别应用程序,那么92%的准确率是非常棒的;如果损失很大,那么你可以依靠用户只需用他们的相机尝试不同的角度,直到它工作。

如果您正在寻找肿瘤,92%的准确度相当不错,但如果您的损失非常高,您可能希望在模型上稍微努力,因为医疗成像本身非常昂贵并且不容易要求更多图像或不同的角度,如果你的模型没有提取一些东西。通过获取数据集并将其分为两部分来完成对这些因素的评估:

  1. 第一部分要得多,用于训练
  2. 第二个较的部分用于测试

3.Splitting the Dataset(拆分数据集)

如何拆分数据,以及如何处理标签是另一种讨论。可以这么说,把它想象成一个80%:20%的东西,你在80上训练并用20测试,如果模型在20%上做得好,那么你有一些你可以使用的东西! “做得好”是主观的,取决于你。您可以进行优化,例如调整数据集大小,标签,神经网络及其组件,并希望影响训练速度,检测速度和准确性,以及您可能感兴趣或不感兴趣的其他事项。

许多神经网络和深度学习教程使用MNIST手写数据集。当您下载此数据集时,它通常可以进入这些部分,进行训练和测试,每个部分都带有图像和标签:

MNIST Training Dataset:

train-images-idx3-ubyte.gz: training set images (9912422 bytes)
train-labels-idx1-ubyte.gz: training set labels (28881 bytes)

MNIST Test Dataset:

t10k-images-idx3-ubyte.gz: test set images (1648877 bytes)
t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes)

该数据集分为60:10。60,000个训练图像和10,000个测试图像。在解压缩文件之后不要试图打开文件。它们不是人类可读的,而是它们的格式需要解析才能被查看。有关如何收集和格式化数据的更多信息,请访问此研究站点

您可以在MNIST教程中使用此数据集创建CNN。

4.Caffe Model Zoo

Caffe和Caffe2最棒的一点就是(Model Zoo)。这是开源社区提供的项目集合,描述了模型的创建方式,使用的数据集以及模型本身。通过这种方式,您实际上不需要进行任何培训。您只需下载该模型即可。您还可以下载训练数据和测试数据以查看其工作原理,并使用提供的测试数据自行验证模型的准确性。

5.Custom Datasets

但是,测试自己的数据有点棘手。一旦掌握了提供的模型及其数据集,我们将在另一个教程中介绍如何测试自己的数据。在您尝试这些时,最好注意您可以将数据集,样本/子集与其标签组合在一起。您可能决定要在标签上显示更少的信息,或者更多。您可能还没有在某些训练数据中包含标签。这有一个有趣的副作用,即在某些情况下通过让网络在训练期间做出一些猜测来实际改善模型性能【也就是我们说的泛化能力】。我们对特征进行分类和注释的方式并不总是映射到计算机的神经网络如何做到这一点。 “过度拟合”数据可能会导致网络性能下降。

6.Caffe Model Files

现在让我们概述一下,让我们跳到一个具体的例子。您将看到一小组文件,这些文件将用于运行模型并查看其工作原理。

  1. .caffemodel和.pb:这些是model; 它们是二进制文件,通常是大文件。

.caffemodel:来自Caffe1.0
.pb:来自Caffe2,一般都有init和predict

  1. .pbtxt:Caffe2 pb文件的可读形式
  2. deploy.prototxt:描述部署【使用时】(而非训练)的网络结构(net)。
  3. solver.prototxt:描述训练期间使用的变量【超参数】,包括学习率,正则化等。
  4. train_val.prototxt:描述训练(和验证)的网络架构(net)。

猜你喜欢

转载自blog.csdn.net/weixin_37251044/article/details/82455020