神经网络模型---AlexNet

一、AlexNet

1.导入tensorflow库,这里给简称为tf库

import tensorflow as tf
from tensorflow.keras import datasets, layers, models

datasets:是用于训练和测试机器学习模型的数据集合
layers:是构建神经网络模型的关键组成部分
models:是构建的神经网络架构;用于从数据中学习特征并进行预测

2.加载Fashion-MNIST数据集

(train_images, train_labels), (test_images, test_labels) = datasets.fashion_mnist.load_data()

load_data是一个方法,用来加载数据集
train_images:一个数组,包含了灰度图像,用于训练模型
train_labels: 包含图像数量的整数值,范围从0到9,每个值对应于train_images中相应图像的类别标签
test_images和test_labels与上述说明一致

3.归一化,将像素值范围在[0,1]之间

train_images = train_images / 255.0
test_images =  test_images / 255.0

4.数据集的图像是灰度图像,需增加一个颜色通道

train_images = tf.expand_dims(train_images, axis=-1)
test_images = tf.expand_dims(test_images, axis=-1)

train_images的原始形状:(60000,28,28);60000是训练样本的数量
expand_dims用于增加一个新的维度。
axis=-1指定增加新的维度位置。-1表示最后一个轴,即(60000,28,28,1)
test_images同理

5.将标签从整数形式转换为独热编码形式

train_labels = tf.one_hot(train_labels, depth=10)
test_labels = tf.one_hot(test_labels, depth=10)

独热编码是一种将分类数据表示为二进制向量的方法,每个类别对应一个唯一的二进制向量,向量中只有一个元素是1,其余都是0
tf.one_hot()函数将其转换为形状为(60000, 10)的二维数组
test_labels同理

6.创建AlexNet模型

model = models.Sequential([

6.1添加卷积层,该层有32个3x3的卷积核,激活函数为relu,并且指定了输入形状为28x28像素的单通道图像

layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),

6.2添加一个2x2的最大池化层

layers.MaxPooling2D((2, 2)),

6.3添加第二个卷积层

layers.Conv2D(64, (3, 3), activation='relu'),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(128, (3, 3), activation='relu'),
layers.MaxPooling2D((2, 2)),

6.4将池化层的输出展平为1个一维向量

layers.Flatten(),

6.5添加一个全连接层,该层有128个神经元

layers.Dense(128, activation=‘relu’),

6.6全连接层,有10个神经元,对应数据集的10个类别,激活函数:softmax输出每个类别的概率分布

    layers.Dense(10, activation='softmax')
])

7.编译模型

model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])

参数1:使用了Adam优化器,结合了动量和自适应学习率的优点
参数2:此处使用的损失函数 是一种多分类问题的交叉熵损失函数
参数3:指定在训练过程中要计算的评估指标:这里计算了准确率这个指标

8.训练模型

model.fit(train_images,train_labels,epochs=10,batch_size=64,validation_data=(test_images,test_labels))

model.fit函数作用:执行模型的训练过程
参数1:训练集的图像数据,它是一个四维张量
参数2:训练集的标签数据,它是一个二维张量
参数3:训练过程将进行的完整循环次数
参数4:每次梯度更新时使用的样本数量
参数5:用于验证的测试数据集,可评估性能,避免过拟合

结果:
在这里插入图片描述

9.保存模型

model.save('AlexNet.h5')

结果:
在这里插入图片描述

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

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

相关文章

Golang并发控制的三种方案

Channel Channel是Go在语言层面提供的一种协程间的通信方式&#xff0c;我们可以通过在协程中向管道写入数据和在待等待的协程中读取对应协程的次数来实现并发控制。 func main() {intChan : make(chan int, 5)waitCount : 5for i : 0; i < waitCount; i {go func() {intC…

上海SNEC光伏展参展总结--安科瑞

安科瑞戴婷 Acrel-Fanny 今年的snec上海光伏展吸引了来自全球各地的光伏行业专业人士及爱好者&#xff0c;本次展会共有来自30多个国家和地区的超过2000家企业参展&#xff0c;展出的光伏产品涵盖了太阳能电池、太阳能组件、逆变器、太阳能辅助设备等众多领域。 随着近年来光…

Oracle中常用特殊字符chr值

在Oracle数据库中&#xff0c;特殊字符的chr值&#xff08;即字符与ASCII码之间的对应关系&#xff09;对于数据的处理和查询非常重要。以下是一些常见的特殊字符及其对应的chr值&#xff1a; 换行符&#xff08;LF&#xff09;&#xff1a; chr值&#xff1a;10 示例&#…

《收获,不止oracle》读书笔记一:oracle体系结构

从图中可以看出,oracle数据库是由实例和一组数据库文件组成。实例是由oracle开辟的内存区和一组后台进程组成的。

2024.6.18

Python的网络编程 网络四层 在开始前,我们需要先了解一下我们在网络通信过程中的四个层次 我们上网产生的数据都是经过协议栈一层一层的封装然后经网卡发送到网络&#xff0c;经网络发送到服务端&#xff0c;然后服务端又是一层一层的解封装拿到自己想要的数据。 我们学习的…

YOLOv8目标检测算法在地平线Bernoulli2架构BPU上高效部署参考(PTQ方案)30fps!

—— 以RDK X3为例&#xff0c;修改Head部分&#xff0c;8ms疾速Python后处理程序&#xff0c;30fps稳稳当当 本文在地平线对YOLOv8s的Backbone修改的基础上&#xff0c;提出一种在地平线Bernoulli2架构BPU上部署YOLOv8的后处理思路。使用640640分辨率&#xff0c;80类别基于C…

香橙派AIPro开机测试

资料准备&#xff1a; 香橙派官网资料下载链接&#xff1a;http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html 硬件准备 香橙派ai pro一个 32G sd卡&#xff0c;带出厂镜像 电源 鼠标 键盘 hdmi显示屏 测试介绍 由…

4418 android4.4 + 6818 android5.1 移植gps

网上已经有的移植的资料 目前 3399 的板子上 对已有的可运行的GPS 进行测试。 我这里的 rk3399 的板卡 , Android7 Android8 都是 可以运行 GPS 应用程序的。 使用的是 ttyS4 的节点。 问题: 我发现, 开机就删掉 ttyS4 节点,也是可以 打开应用的。并且可以正常运行。不…

【机器学习】使用Perceiver模型解决Transformer效率低下问题

1.引言 1.1.技术背景 Transformer在高维度输入上计算效率低下&#xff0c;制约了Transformer框架的应用和迭代&#xff1a; 内存消耗大&#xff1a; 当处理高维度输入&#xff0c;如长文本或高分辨率图像时&#xff0c;Transformer需要将模型参数和中间状态都保存到内存中。这…

MQTT协议与tcp/ip协议的区别

MQTT协议与TCP/IP协议在多个方面存在显著的区别。以下是对这些区别的清晰归纳和解释&#xff1a; 1.协议层次与定位&#xff1a; ① TCP/IP&#xff1a;是一个协议族&#xff0c;是互联网的基础协议套件&#xff0c;它定义了电子设备如何在网络上进行通信。TCP/IP协议由多个层…

could not be registered. A bean with that name has already been defined in file

今天在使用SpringBoot中的拦截器的功能是遇到了如下的BUG&#xff0c;为了让屏幕前的您尽快排雷&#xff0c;特此记录一下 &#xff0c;报错信息如下&#xff1a; Description:The bean noLoginInterceptor, defined in class path resource [com/zwl/crm/config/MyConfig.cla…

Dubbo的多协议支持与选择策略

Dubbo作为一款高性能、分布式服务框架&#xff0c;其设计初衷之一就是提供高度灵活性和可扩展性&#xff0c;特别是在服务通信协议方面。Dubbo支持多种协议&#xff0c;以适应不同的应用场景和需求。以下是关于Dubbo多协议支持的详细介绍及选择策略&#xff1a; 支持的协议类型…

图片怎么弄成黑白的?关于将图片改成黑白的几种方法

图片怎么弄成黑白的&#xff1f;黑白照片以其独特的艺术魅力和经典的视觉效果&#xff0c;依然在摄影和图像处理中占据重要地位。无论是为了追求怀旧的氛围&#xff0c;还是为了突出图像的构图和光影效果&#xff0c;许多人都希望将彩色图片转换成黑白图片。这不仅可以赋予图像…

通俗易懂的ChatGPT的原理简介

ChatGPT是一种基于语言模型的对话生成模型。它的原理是通过预训练和微调两个步骤来生成有意义的对话回复。 在预训练阶段&#xff0c;模型使用大量的公开文本数据集进行训练。它通过学习文本中的上下文关联和语言规律来构建一个深层神经网络模型。这个模型能够预测给定上文的下…

全网最强Spring教程 | 万字长文爆肝Spring(三)

Spring_day03 今日目标 理解并掌握AOP相关概念能够说出AOP的工作流程能运用AOP相关知识完成对应的案例编写重点掌握Spring的声明式事务管理 1&#xff0c;AOP简介 前面我们在介绍Spring的时候说过&#xff0c;Spring有两个核心的概念&#xff0c;一个是IOC/DI&#xff0c;一个…

影响建筑效果图后期时间的因素有哪些?渲染100邀请码1a12

建筑效果图是建筑设计师展示设计方案的重要手段&#xff0c;为了完美展现&#xff0c;我们通常会对效果图进行后期处理&#xff0c;那么影响后期时间的因素有哪些&#xff1f;这次我们来看看吧。 1、底图的质量 底图是指原始的渲染图片&#xff0c;它决定了后期处理的难易程度…

杂项——中断进不去的原因

没有设置中断优先级&#xff0c;或者没有打开中断使能 如果只有一个中断&#xff0c;可以不加优先级&#xff0c;如果有多个中断&#xff0c;如果不加优先级&#xff0c;可能会达不到自己想要的效果

鸿蒙APP开发的技术难点

鸿蒙APP开发的技术难点主要体现在以下几个方面&#xff0c;鸿蒙APP开发是一项技术难度较高的工作&#xff0c;需要开发者具备扎实的编程基础、分布式开发能力和学习新技术的意愿。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1. 多…

软件生存期模型

软件生存期模型是为了获得高质量软件所需要完成的一系列任务的框架&#xff0c;它规定了完成各项任务的工作步骤。典型的软件生存期模型有瀑布模型、增量模型、快速原型模型、喷泉模型、螺旋模型、统一过程、敏捷开发模型等。 瀑布模型 1970年由Royce首先提出瀑布模型&#x…

老杨说运维 | 如何结合现状进行运维路径建设(文末附演讲视频)

青城山脚下的滔滔江水奔涌而过&#xff0c;承载着擎创一往无前的势头&#xff0c;共同去向未来。2024年6月&#xff0c;双态IT成都用户大会擎创科技“数智化可观测赋能双态运维”专场迎来了完满的收尾。 本期回顾来自擎创科技CTO葛晓波的现场演讲&#xff1a;数智化转型的核心目…