VGG网络简介

news2024/12/26 22:57:56

1. 背景

VGG是常见的用于大型图片识别的极深度卷积网络,

这里主要介绍VGG网络预测在ImageNet数据集上的训练及预测。

2. ImageNet图像数据集简介

        ImageNet包含了145W张224*224像素的三通道彩色图像数据集,图像划分为1000个种类。其中训练集130W张,验证集5W张,测试集10W。

数据加载及预处理:
 

2.1

3. 使用keras自带的VGG16网络

        keras中模型都是预训练好的,其权重存储在~/.keras/models/中,模型初始化时权重会自动下载。

from keras.optimizers import SGD
from keras.applications.vgg16 import VGG16
import matplotlib.pyplot as plt
import numpy as np
import cv2

model = VGG16(weights='imagenet', include_top=True)
sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd)

im = cv2.resize(cv2.imread('tain.png'), (224, 224))
im = np.expand_dims(im, axis=0)
out = model.predict(im)
plt.plot(out.ravel())
plt.show()
print(np.argmax(out))
# 820 蒸汽火车

4. 从深度学习模型特定网络层中提取特征

4.1 为什么从DCNN的中间网络层提取特征?

1. 网络的每一层都在学习识别对最终分类必要的那些特征

2. 低级的网络层识别的是类似颜色和边界这样的顺序特征;

3. 高级的网络层则是把低层的这些顺序特征组合成更高的顺序特征,如形状或者物体等;

因此,中间的网络层才有能力从图像中提取出重要的特征,这些特征有可能对不同的分类有益。

4.2 特征提取的益处?

1. 可以依赖大型的公开可用的训练并把学习转换到新的领域;

2. 可以为大型的耗时训练节省时间;

3. 即使该领域没有足够多的训练样例,也可以提供出合理的解决方案(有了一个良好的初始网络模型)。

4.3 从VGG-16网络特定网络层中进行特征提取

from keras.models import Model
from keras.preprocessing import image
from keras.applications.vgg16 import VGG16, preprocess_input
from keras.optimizers import SGD
import numpy as np
import cv2

# 加载预训练好的VGG16模型
base_model = VGG16(weights='imagenet', include_top=True)
for i, layer in enumerate(base_model.layers):
    print(i, layer.name, layer.output_shape)

 

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

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

相关文章

Contest3070 - 计科2101~2104算法设计与分析上机作业05

问题 A: 最小平均等待时间 题目描述 有n个顾客同时在等待一项服务,顾客i需要的服务时间为ti,1≤i≤n。要安排一个服务次序使得平均等待时间最小(平均等待时间是n个顾客等待服务时间的总和除以n)。请编写算法,计算最小…

大文件上传接口响应超时

背景 开发了一个内容管理发布系统,在后台发布内容信息时,上传了一个较大的视频(较大文件≥200M),以往未上传过如此大文件,然后出现报错 Status Code 413 问题&处理过程 1. status code:4…

如何在Linux使用 chattr 命令更改文件或目录的扩展属性?

在 Linux 操作系统中,chattr 命令用于更改文件或目录的扩展属性,包括可写性、可执行性和删除性等。本文将介绍 chattr 命令的使用方法以及常见的参数。 1. chattr 命令的基本语法 chattr 命令的基本语法如下: chattr [选项] [文件或目录]选…

论文阅读---《人类活动识别的准周期时间序列聚类》

论文地址:Quasi-Periodic Time Series Clustering for Human Activity Recognition | SpringerLink 相空间知识概念:相空间相关概念以及轨迹生成_末世灯光的博客-CSDN博客 摘要: 本文利用移动加速度计对时间序列中的周期信号进行分析&…

[python][学习]turtle.circle()函数

turtle.circle()函数 定义:turtle.circle(radius, extentNone) 作用:根据半径radius绘制extent角度的弧形 参数: radius :弧形半径 当radius值为正数时,圆心在…

斯坦福最新AI报告发布,12张图看懂AI现状

最近,斯坦福人工智能研究所(HAI)发布了2023年AI指数报告,提供了AI领域当前技术成就、政策趋势、经济影响等多方面的最新情况。 今天我们将报告最重要的12个结论精简出来,分享给大家。 ▍AI大模型不只是大这么简单 在…

JavaEE-轻松了解网络原理之TCP协议

目录 TCP协议TCP协议数据格式TCP原理确认应答超时重传连接管理三次握手四次挥手 滑动窗口流量控制拥塞控制延迟应答捎带应答面向字节流异常问题 TCP协议 TCP,即Transmission Control Protocol,传输控制协议. TCP协议数据格式 16位源端口号与16位目的端…

【工作小札】利用动态数据源实现Sass的一种思路(内含完整代码示例)

文章目录 1 楔子2 分析3 代码实现3.1 管理库关键库表设计3.2 租户库关键库表设计3.3 新建一个SpringBootWeb项目3.4 添加maven依赖3.5 创建初始化数据库工具类3.6 创建动态数据源配置类3.7 创建登录代码3.8 创建数据源元数据服务类3.9 创建saas服务基础父类 4 示例演示4.1 下载…

MultiHeadAttention多头注意力机制的原理

MultiHeadAttention多头注意力作为Transformer的核心组件,其主要由多组自注意力组合构成。 1. self-Attention自注意力机制 在NLP任务中,自注意力能够根据上下文词来重新构建目标词的表示,其之所以被称之为注意力,在于从上下文词…

【Spring6】| Spring6集成MyBatis3.5

目录 一:Spring6集成MyBatis3.5 第一步:准备数据库表 第二步:IDEA中创建一个模块,并引入依赖 第三步:基于三层架构实现,所以提前创建好所有的包 第四步:编写pojo 第五步:编写m…

【Redis数据库】异地公网远程登录连接Redis教程

文章目录 1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一个固定tcp地址4.2 配置固定TCP地址4.3 使用固定的tcp地址连接 转发自CSDN远程穿透的文章:公网远程连接R…

Java阶段二Day05

Java阶段二Day05 文章目录 Java阶段二Day05截至此版本可实现的流程图为V14UserControllerClientHandlerDispatcherServletHttpServletResponseHttpServletRequest V15DispatcherServletHttpServletResponseHttpServletRequest V16HttpServletRequestHttpServletResponse 反射JA…

SpringCloud整合AOP做日志管理

目录 1、前置知识2、步骤2.1、依赖2.2、自定义注解,用于注解式AOP2.3、定制切面类2.4、测试 1、前置知识 切面(Aspect):官方的抽象定义为“一个关注点的模块化,这个关注点可能会横切多个对象”,在本例中&a…

超详细Redis入门教程——Redis命令(上)

前言 本文小新为大家带来 超详细Redis入门教程——Redis命令(上) 相关知识,具体内容包括Redis 基本命令,Key 操作命令,String 型 Value 操作命令,Hash 型 Value 操作命令,List 型 Value 操作命令…

快速搭建外卖配送服务:利用外卖系统源码实现

外卖配送服务已经成为了现代消费者生活的一部分,它不仅方便了消费者的用餐需求,也给商家提供了新的销售渠道,同时也为外卖配送员提供了更多的就业机会。为了满足这个市场的需求,外卖系统源码应运而生。 外卖系统源码是一个集成了…

第一章:数、式、方程与方程组

1.实数 1.内容概述 1.了解实数分类2.数轴3.相反数和倒数4.绝对值5.算数平方根相关概念及有关计算2.实数分类 3.实数的基本概念 1.数轴:规定原点、正方向和单位长度的直线叫做数轴2.相反数:绝对值相同而符号相反的两个数,互称相反数3.倒数:1除以任何数的商,我们叫做倒数,0…

超市购物系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设!!! 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址:https://download.csdn.net/download/qq_50954361/87682510 更多系统资源库…

Jenkins ssh windows 部署 java程序

版权说明: 本文由博主keep丶原创,转载请保留该段内容在文章头部。 原文地址: https://blog.csdn.net/qq_38688267/article/details/130203785 文章目录 前言实现步骤1. windows下载安装ssh2. windows 安装 winsw2.1 下载 winsw2.2 配置winsw2…

Linux 0.11启动过程分析(一)

Linux 0.11 系列文章 Linux 0.11启动过程分析(一) Linux 0.11 fork 函数(二) Linux0.11 缺页处理(三) Linux0.11 根文件系统挂载(四) Linux0.11 文件打开open函数(五&…

[oeasy]python0132_变量含义_meaning_声明_declaration_赋值_assignment

变量定义 回忆上次内容 上次回顾了一下历史 python 是如何从无到有的看到 Guido 长期的坚持和努力 编程语言的基础都是变量声明 python是如何声明变量的呢? 变量 想要定义变量首先明确什么是变量 变量就是数值能变的量英文名称 variable 计算机在内存中分配出…