用matlab探索卷积神经网络(Convolutional Neural Networks)-3

5.GoogLeNet中的Filters

这里我们探索GoogLeNet中的Filters,首先你需要安装GoogLeNet.在Matlab的APPS里找到Deep Network Designer,然后找到GoogLeNet,安装后的网络是没有右下角的黄色感叹号的,没有安装的神经网络都有黄色感叹号。

在这里插入图片描述

一个层(layer)的 Weights 属性包含该层的权重。你可以使用点符号(dot notation)来访问层的属性:
layer.Prop。由于 GoogLeNet 是一个预训练网络,它已经学习到了可以提取有用特征的权重。这里,我们将GoogLeNet 的各层被保存在变量 ly 中。并将第二层的权重保存到一个名为 W 的变量中。

% 加载网络
net = imagePretrainedNetwork("googlenet");% 保存网络的各层到变量ly中
ly = net.Layers;% 提取第二层
conv = ly(2);% 提取第二层的权重,这里不加分号可以看到W的输出
W = conv.Weights

从W的输出可以看到网络第二层的权重(即第一个卷积层)是一个大小为 7×7×3×64 的数组。这意味着该层有 64 个不同的滤波器。每个滤波器的尺寸是 7×7×3,因此可以将它们看作是 RGB 图像。为了正确显示这些滤波器,必须对它们进行归一化处理。rescale 函数可以将权重值缩放到 0 到 1 之间。使用 montage 函数可以查看这些权重组成的数组。

% 使用 montage 函数可以查看这些权重组成的数组
montage(rescale(W))

在这里插入图片描述

你可以通过索引访问权重数组中的特定滤波器。你需要提取某一个滤波器的所有行、列以及 RGB 通道的数据。这里我们从权重数组中提取第 11 个滤波器,然后将其显示出来。在使用 imshow 显示图像之前,应该使用 rescale 对图像进行归一化处理。

% 提取第11个滤波器
filter_11 = W(:,:,:,11);% 归一化并放大显示
figure,imshow(rescale(filter_11),"InitialMagnification", 1000)

在这里插入图片描述

第11个滤波器似乎在寻找粉红色。我们加载一个图像 roses.jpg ,这个图片中包含一些植物,但只有玫瑰是红色的,这意味着只有玫瑰会被第11个滤波器正向激活。

在这里插入图片描述

你可以通过使用 minibatchpredict 函数来测试这一点,并结合参数 Outputs 获取卷积层的输出:

features = minibatchpredict(net, img, Outputs="layer")

这里,我们从网络 net 中获取图像 im 在层 "conv1-7x7_s2" 的激活值,并将输出命名为 actvn

% 加载图片
im = imread("roses.jpg");% 获取图像在第一个卷积层的输出
actvn = minibatchpredict(net, im, Outputs="conv1-7x7_s2");

激活值的尺寸为 m×n×64。也就是说,第一层卷积中的每个滤波器都会产生一个激活图(或称为特征图)。如果你想研究第11个滤波器的效果,需要提取第11个通道的激活值。对这个矩阵使用 rescale 进行归一化,然后使用 imshow 将其显示出来。

figure,imshow(rescale(actvn(:,:,11)))

在这里插入图片描述

正如预期的那样,红色的玫瑰被强烈激活了。你可以使用这些步骤来研究 montage 中显示的任何一个滤波器。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Verilog中X态的危险:仿真漏掉的bug

由于Verilog中X态的微妙语义,RTL仿真可能PASS,而网表仿真却会fail。 目前进行的网表仿真越来越少,这个问题尤其严重,主要是网表仿真比RTL仿真慢得多,因此对整个回归测试而言成本效益不高。 上面的例子中,用Verilog RTL中的case语句描述了一个简单的AND函数,它被综合成AN…

PyTorch中知识蒸馏浅讲

知识蒸馏 在 PyTorch 中,使用 teacher_model.eval() 和冻结教师模型参数是知识蒸馏(Knowledge Distillation)中的关键步骤。 ​1. teacher_model.eval() 的作用 目的: 将教师模型切换到评估模式,影响某些特定层(如 Dropout、BatchNorm)的行为。 ​具体影响: ​Dropo…

Odoo/OpenERP 和 psql 命令行的快速参考总结

Odoo/OpenERP 和 psql 命令行的快速参考总结 psql 命令行选项 选项意义-a从脚本中响应所有输入-A取消表数据输出的对齐模式-c <查询>仅运行一个简单的查询&#xff0c;然后退出-d <数据库名>指定连接的数据库名&#xff08;默认为当前登录用户名&#xff09;-e回显…

ChatGPT 迎来 4o模型:更强大的图像生成能力与潜在风险

OpenAI 对 ChatGPT 进行重大升级&#xff0c;图像生成功能即将迎来新的 4o 模型&#xff0c;并取代原本的 DALLE。此次更新不仅提升了图像生成质量&#xff0c;还增强了对话内容和上传文件的融合能力&#xff0c;使 AI 生成的图像更加智能化和精准化。 4o 模型带来的革新 Ope…

Python 实现的运筹优化系统代码详解(整数规划问题)

一、引言 在数学建模的广袤领域里&#xff0c;整数规划问题占据着极为重要的地位。它广泛应用于工业生产、资源分配、项目管理等诸多实际场景&#xff0c;旨在寻求在一系列约束条件下&#xff0c;使目标函数达到最优&#xff08;最大或最小&#xff09;且决策变量取整数值的解决…

Visual Studio Code配置自动规范代码格式

目录 前言1. 插件安装2. 配置个性化设置2.1 在左下角点击设置按钮 &#xff0c;点击命令面板&#xff08;或者也可以之间按快捷键CtrlShiftP&#xff09;2.2 在弹出的搜索框输入 settings.json&#xff0c;打开首选项&#xff1a;打开工作区设置&#xff1b;2.3 在settings.jso…

【分布式】Hystrix 的核心概念与工作原理​

熔断机制​ Hystrix 的熔断机制就像是电路中的保险丝。当某个服务的失败请求达到一定比例&#xff08;例如 50%&#xff09;或者在一定时间内&#xff08;如 20 秒&#xff09;失败请求数量超过一定阈值&#xff08;如 20 个&#xff09;时&#xff0c;熔断开关就会打开。此时…

TypeScript 中 await 的详解

TypeScript 中 await 的详解 1. 基本概念2. 语法要求3. 工作原理4. 与 Promise 的比较5. 实践中的注意事项总结 本文详细介绍了 TypeScript 中 await 的工作原理、语法要求、与 Promise 的关系以及实践中需要注意的问题&#xff0c;同时针对代码示例进行了优化和补充说明。 1.…

ThreadLocal 深度解析

一、引言 在多线程编程的复杂世界中&#xff0c;数据共享与隔离是一个核心且具有挑战性的问题。ThreadLocal 作为 Java 并发包中的重要工具&#xff0c;为我们提供了一种独特的线程局部变量管理方式&#xff0c;使得每个线程都能拥有自己独立的变量副本&#xff0c;避免了多线…

VMware安装Ubuntu实战分享

在日常开发和学习过程中&#xff0c;很多人都会选择在VMware虚拟机上安装Ubuntu&#xff0c;以便进行Linux环境的体验和开发调试。本文将详细分享在VMware Workstation上安装Ubuntu的全过程&#xff0c;并结合个人经验&#xff0c;提供一些实用的小技巧&#xff0c;帮助大家顺利…

阻止上传可执行程序

点击工具中的文件服务器资源管理器 、然后点击文件屏蔽管理中的文件屏蔽&#xff0c;然后导入目标文件选择要限制的属性即可

微服务面试题:配置中心

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

系统思考反馈

最近交付的都是一些持续性的项目&#xff0c;越来越感觉到&#xff0c;系统思考和第五项修炼不只是简单的一门课程&#xff0c;它们能真正融入到我们的日常工作和业务中&#xff0c;帮助我们用更清晰的思维方式解决复杂问题&#xff0c;推动团队协作&#xff0c;激发创新。 特…

MMD 转 STL,拓宽 3D 模型应用边界:方法与门道

在 3D 建模与打印领域&#xff0c;不同格式文件间的转换是常见需求。MMD&#xff08;MikuMikuDance&#xff09;模型文件格式常用于动漫角色的舞蹈创作等&#xff0c;而 STL&#xff08;Stereolithography&#xff09;格式则广泛应用于 3D 打印与计算机辅助设计&#xff08;CAD…

C语言 【初始指针】【指针一】

引言 思绪很久&#xff0c;还是决定写一写指针&#xff0c;指针这块内容很多&#xff0c;也不是那么容易说清楚&#xff0c;这里尽可能写地详细&#xff0c;让大家理解指针。&#xff08;未完序&#xff09; 一、内存和地址 在讲指针前&#xff0c;需要有一个对内存和地址的认…

深入理解pthread多线程编程:从基础到生产者-消费者模型

前言 在多核处理器普及的今天&#xff0c;多线程编程已成为提高程序性能的重要手段。POSIX线程&#xff08;pthread&#xff09;是Unix/Linux系统下广泛使用的多线程API。本文将系统介绍pthread的关键概念&#xff0c;包括线程初始化、死锁预防、递归锁使用&#xff0c;并通过…

springboot 对接马来西亚数据源API等多个国家的数据源

使用Spring Boot对接StockTV全球金融数据API指南 StockTV提供了覆盖股票、外汇、期货和加密货币的全球化金融数据接口。本文将通过Spring Boot实现对这些API的快速对接&#xff0c;并提供完整的代码示例。 一、前期准备 1. 获取API Key 访问StockTV官网联系客服获取API Key…

软件测试常用设计模式

设计模式的重要原则就是&#xff1a;高内聚、低耦合&#xff1b;通常程序结构中各模块的内聚程度越高&#xff0c;模块间的耦合程度就越低。 数据驱动测试&#xff1a;Data Driven Testing&#xff0c;简称DDT&#xff1b; 数据驱动指的是从数据文件&#xff08;如数据库、Ex…

基于 Fluent-Bit 和 Fluentd 的分布式日志采集与处理方案

#作者&#xff1a;任少近 文章目录 需求描述系统目标系统组件Fluent BitFluentdKafka 数据流与处理流程日志采集日志转发到 Fluentd日志处理与转发到 KafkaKafka 作为消息队列 具体配置Fluent-Bit的CM配置Fluent-Bit的DS配置Fluentd的CM配置Fluentd的DS配置Kafka查询结果 需求…

正则表达式(Regular Expression,简称 Regex)

一、5w2h&#xff08;七问法&#xff09;分析正则表达式 是的&#xff0c;5W2H 完全可以应用于研究 正则表达式&#xff08;Regular Expressions&#xff09;。通过回答 5W2H 的七个问题&#xff0c;我们可以全面理解正则表达式的定义、用途、使用方法、适用场景等&#xff0c…