MatConvnet工具箱文档翻译理解(4)

2023-12-02 11:32

本文主要是介绍MatConvnet工具箱文档翻译理解(4),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第3章 包装器和预训练模型

这是很容易的组合第4章“手动”的计算块,但通常通过一个包装器来使用它们可以实现CNN架构给定一个模型规范通常更方便,可用的包装器总结在3.1节。 
MatConvNet还附带了许多用于图像分类的预训练模型(其中大多数 
在ImageNet ILSVRC挑战上训练),图像分割,文本点样和面部识别。 这些使用非常简单,如3.2节所示。

3.1包装

MatConvNet提供了两个包装器:用于基本链块链(3.1.1节)的SimpleNN和用于更复杂的直接非循环图(参见3.1.2节)的块的DagNN。

3.1.1 SimpleNN

SimpleNN包装器适用于由计算块的线性链组成的网络。 它主要由vl_simplenn函数(对CNN及其派生的评估)以及一些其他支持函数(例如vl_simplenn_move(移动CPU和GPU之间的CNN)和vl_simplenn_display(获得和/或打印关于CNN的信息)实现)。

vl_simplenn接收表示CNN的结构网络作为输入,以及输入x和潜在输出导数dzdy,这取决于操作模式。 有关输入和输出格式的详细信息,请参阅vl_simplenn函数的内联帮助。 实际上,vl_simplenn的实现是如何可以一起使用基本神经网络构建块的良好示例,并且可以作为更复杂实现的基础。

3.1.2 DagNN

DagNN包装器比SimpleNN更复杂,因为它必须支持任意图形拓扑。 它的设计是面向对象的,有一个类实现每个层类型。 虽然这增加了复杂性,并且使得微小的CNN架构(例如MNIST)的包装器稍微更慢,但是实际上它更加灵活和更容易扩展。 
DagNN由dagnn.DagNN类(在dagnn命名空间下)实现。

3.2 Pre-trained models

vl_simplenn易于使用预训练模型(见主页下载一些)。 
例如,以下代码下载在ImageNet数据上预先训练的模型,并将其应用于MATLAB库存图像之一:

% setup MatConvNet in MATLAB
run matlab/vl_setupnn
% download a pretrained CNN from the web
urlwrite(...
'http://www.vlfeat.org/matconvnet/models/imagenet-vgg-f.mat', ...
'imagenet-vgg-f.mat');
net = load('imagenet-vgg-f.mat') ;
% obtain and preprocess an image
im = imread('peppers.png') ;
im_ = single(im) ; % note: 255 range
im_ = imresize(im_, net.meta.normalization.imageSize(1:2)) ;
im_ = im_-net.meta.normalization.averageImage ;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

请注意,在运行网络之前应对图像进行预处理。 虽然预处理规范取决于模型,但预训练模型包含描述预期预处理类型的网络规范化场。 特别要注意的是,该网络将固定大小的图像作为输入,并且需要去除平均值; 此外,图像强度在[0,255]的范围内归一化。 
下一步是运行CNN。 这将返回一个res结构的输出网络层:

%run the CNN
res = vl_simplenn(net, im_) ;
  • 1
  • 2

最后一层的输出可用于分类图像。 为了方便起见,类名称包含在网络结构中:

% show the classification result
scores = squeeze(gather(res(end).x)) ;
[bestScore, best] = max(scores) ;
figure(1) ; clf ; imagesc(im) ;
title(sprintf('%s (%d), score %.3f',···net.meta.classes.description{best}, best, bestScore)) ;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意,几个扩展是可能的。 首先,图像可以裁剪而不是重新定标。 第二,多种裁剪可以喂给网络和结果平均,通常为改进的结果。 第三,网络的输出可以用作图像编码的通用特征。

3.3学习模型

由于MatConvNet可以使用反向传播计算CNN的导数,因此使用它实现学习算法很简单。 因此,随机梯度下降的基本实现是简单的。 
示例代码在examples / cnn_train中提供。这个代码是足够的,以允许在NMINST,CIFAR,ImageNet和其他许多数据集上训练。相应的示例在examples /目录中提供。

3.4运行大规模实验

对于大规模实验,例如为ImageNet学习网络,强烈建议使用NVIDIA GPU(至少6GB内存)和足够的CPU和磁盘速度。 例如,要在ImageNet上训练,我们建议如下: 
1.下载ImageNet数据http://www.imagenet.org/challenges/LSVRC。 安装它在某个地方,并从数据/ imagenet12链接到它 
2.考虑预处理数据以将所有图像转换为高度为256像素。这可以通过提供的utils / preprocess-imagenet.sh脚本来完成。 在这里方式,训练不必每次都调整图像的大小。 不要忘记指向将训练代码转换为预处理数据。 
3.考虑将数据集复制到RAM磁盘(前提是您有足够的内存),以便更快地访问。 不要忘记将训练代码指向此副本。 
4.编译MatConvNet与GPU支持。 有关说明,请参阅主页。 
一旦你的设置准备好了,你应该能够运行examples /cnn_imagenet(编辑并根据需要更改任何标志以启用GPU支持和多个映像预取线程)。如果一切顺利,你应该期望能够训练与200-300图像/秒。

这篇关于MatConvnet工具箱文档翻译理解(4)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/445195

相关文章

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生

浅谈Redis Key 命名规范文档

《浅谈RedisKey命名规范文档》本文介绍了Redis键名命名规范,包括命名格式、具体规范、数据类型扩展命名、时间敏感型键名、规范总结以及实际应用示例,感兴趣的可以了解一下... 目录1. 命名格式格式模板:示例:2. 具体规范2.1 小写命名2.2 使用冒号分隔层级2.3 标识符命名3. 数据类型扩展命

spring IOC的理解之原理和实现过程

《springIOC的理解之原理和实现过程》:本文主要介绍springIOC的理解之原理和实现过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、IoC 核心概念二、核心原理1. 容器架构2. 核心组件3. 工作流程三、关键实现机制1. Bean生命周期2.

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当