学习笔记:caffe2 教程记录一

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

以下学习笔记,来自于https://caffe2.ai/docs/tutorials.html 的官方教程,我只是记录,我看到的,以便查阅。

一、官方的教程 clone 和运行

clone教程源代码: 

git clone --recursive https://github.com/caffe2/tutorials caffe2_tutorials

教程需要使用的相关依赖:

注意:如果是用Anaconda,请使用conda install 安装下面依赖,而不是pip install

pip install -U pip setuptools
pip install \
    graphviz \
    hypothesis \
    ipython \
    jupyter \
    matplotlib \
    notebook \
    pydot \
    python-nvd3 \
    pyyaml \
    requests \
    scikit-image \
    scipy

运行教程:

进入到clone的路径,运行shell脚本

./start_ipython_notebook.sh

二、caffe2 新手教程文章

##1.模型和数据集 - 入门 

教程地址:https://caffe2.ai/docs/tutorial-models-and-datasets.html

模型和数据:Caffe和深度学习的新手?从这里开始,你将了解有关可用的不同模型和数据集的更多信息。

caffe2 ,模型,数据集 简介:在本教程中,我们将尝试使用现有的Caffe模型。在其他教程中,您可以学习如何修改模型或创建自己的模型。还可以学习如何生成或修改数据集。在这里,您将学习如何找到模型、所需的文件所涉及的内容以及如何使用数据集测试模型。

模型与数据集:

让我们确保您了解模型与数据集是什么。让我们从数据集开始。这是一个数据集合,任何数据,但通常有某种主题,如花的图像集合。伴随着这个收集,你也需要一些标签。这是一个文件,讨论每个图像,并提供某种类型的描述。例如,它可以是属于一类动植物或某种种类,或者它可以是通用名,或者它可以是它的外观,感觉或气味或其某种组合的描述符。在下面的例子中,Mukane&Kendule提出了一种利用图像分割和特征提取从图像中提取花朵的方法,将主花从训练图像中拉出,然后分类器使用纹理特征来进行匹配。

input image :输入图片 、Query Image:查询图片 、Segmentation :分段  、 Feature Extraction:特征提取、classifier:分类、classification label :分类标签

模型是通过神经网络运行数据集时创建的模型。这称为训练,神经网络和运行它的计算机从数据集中学习。它基于与数据集中的其他示例类似的特征以及标签之间的共性等来分离关于如何识别图像中的显著对象的所有特征。有许多类型的神经网络是专门为特定目的而设计的,它们可以创建比其他更精确的模型。对于花卉,我们建立一个能够准确识别花卉的模型,我们会选择一个卷积神经网络。我们也会用同样的方法来识别其他的图片。看一下下面的交互示例,它显示了网络发现的共同提取的区域,以及它们如何跨网络层链接在一起。

评估模型的性能:

创建模型的常见做法是使用通常称为准确性和损失的两个因素来评估其性能。

准确性:经常与错误的对比
损失:它应该在什么时候无法识别它。

每个用例对这些因素都有不同的容差。如果你给一个应用程序提供鲜花id,那么92%的准确率是非常棒的; 如果损失很大,那么你可以依靠用户只需用他们的相机尝试不同的角度,直到它工作。如果您正在寻找肿瘤,92%的准确度是相当不错的,但如果您的损失非常高,您可能希望在模型上稍微努力,因为医疗成像本身非常昂贵,并且不容易要求更多图像或不同的角度,如果你的模型没有提取一些东西。通过获取数据集并将其分为两部分来完成对这些因素的评估:

第一部分,数据要大得多,用于训练 ,训练数据集80%。
第二部分,只需要小部分数据,用于测试,测试数据集20%

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

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

MNIST培训数据集

MNIST测试数据集

该数据集分为60/10 - 60,000个训练图像和10,000个测试图像。在解压缩文件之后不要试图打开文件 - 它们不是人类可读的,该格式需要解析才能被查看。有关如何处理这些数据格式,请访问mnist 研究网站:http://yann.lecun.com/exdb/mnist/

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

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

自定义数据集:
使用自己定义的数据有点棘手。我们将在另一个教程中介绍如果使用它,当你尝试自定义数据集,最好注意您可以将数据集,样本/子集以及修补程序与其标签组合在一起。您可能决定要在标签上显示更少的信息,或者更多。您可能还不包括一些培训数据上的标签。这有一个有趣的副作用,实际上在某些情况下通过让网络在训练期间进行一些猜测来改进模型性能。我们对特征进行分类和注释的方式并不总是映射到计算机的神经网络如何做到这一点。“过度拟合”数据会导致网络性能下降。

caffe 模型 文件:

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

  • .caffemodel和.pb:这些是模型; 它们是二进制文件,通常是大文件
    • caffemodel:来自原始的Caffe
    • pb:来自Caffe2,一般都有init和预测
  • .pbtxt:Caffe2 pb文件的可读形式
  • deploy.prototxt:描述部署(而非培训)时间的网络体系结构
  • solver.prototxt:描述培训期间使用的变量,包括学习率,正则化等。
  • train_val.prototxt:描述培训(和验证)时间的网络架构

样例模型:

目前caff2 的githb上提供了一些预先训练过的模型。https://github.com/caffe2/models

如:

  • bvlc_alexnet
  • bvlc_googlenet
  • finetune_flickr_style
  • squeezenet

运行模型:

如果你想跳过训练,让我们来看一下经过预训练的模型。然后我们将把一些测试数据放在它上面,看看它做了什么。

未完,后面补充。。。。

 

猜你喜欢

转载自blog.csdn.net/zr940326/article/details/82215347
今日推荐