神经网络模型---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')

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

豆包高质量声音有望复现-Seed-TTS

我们介绍了 Seed-TTS,这是一个大规模自回归文本转语音 (TTS) 模型系列,能够生成与人类语音几乎没有区别的语音。Seed-TTS 作为语音生成的基础模型,在语音上下文学习方面表现出色,在说话人的相似性和自然性方…

摄像头图像矫正的表格生成方法

1.设置单元格高宽 点击表格左上角 的 小三角 列宽: HOME -> Rows and Columns -> Column Width 5 CM 行高: HOME -> Rows and Columns -> Row Height 5 CM 2.设置 条件格式 HOME -> Conditional Formatting-> Manager Rules 点击 左上方 New Rule…

win11右键小工具

开头要说的 在日常使用场景中,大家如果用的是新的笔记本电脑,应该都是安装的win11系统, 当然win11系统是最被诟病的, 因为有很多人觉得很难操作, 就比如一个小小的解压操作, 在win7和win10上&#xff…

gitlab 身份验证手机号验证没86

处理方案 在浏览器中摁 【F12】打开控制台,选择网络模块,找到手机号列表的请求,请求是 https://gitlab.com/-/countries,右击数据区域点击【替换内容】如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/di…

gRPC(Google Remote Procedure Call Protocol)谷歌远程过程调用协议

文章目录 1、gRPC简介2、gRPC核心的设计思路3、gPRC与protobuf关系 1、gRPC简介 gPRC是由google开源的一个高性能的RPC框架。Stubby Google内部的RPC,演化而来的,2015年正式开源。云原生时代是一个RPC标准。 2、gRPC核心的设计思路 网络通信 ---> gPR…

API-声明变量const优先

学习目标: 掌握声明变量const优先 学习内容: 变量声明总结 变量声明: 变量声明有三个var let const。 首先var排除,老派写法,问题很多,可以淘汰掉… 建议:const优先,尽量使用cons…

amr文件怎么转换成mp3?超好用的四种转换方法介绍!

amr文件怎么转换成mp3?在当今数字化时代,音频格式的多样性给我们带来了更广泛的选择,其中AMR格式就是其中之一,AMR格式在录音和通话领域得到广泛应用,但与此同时,它也存在一些挑战和局限性,尽管…

推荐常用的三款源代码防泄密软件

三款源代码防泄密软件——安秉源代码加密、Virbox Protector 和 MapoLicensor——确实各自在源代码保护的不同方面有其专长。这些软件可以满足企业对于源代码保护的三大需求:防止泄露、防止反编译和防止破解。 安秉源代码加密: 专注于源代码文件的加密&…

安卓Context上下文

目录 前言一、Context简介二、Application Context2.1 Application Context的创建过程2.2 Application Context的获取过程 三、Activity的Context创建过程四、Service的Context创建过程 前言 Context也就是上下文对象,是Android较为常用的类,但是对于Co…

C++ 70 之 类模版中的成员函数,在类外实现

#include <iostream> #include <string> using namespace std;template<class T1, class T2> class Students10{ public:T1 m_name;T2 m_age;Students10(T1 name, T2 age); // 类内声明 类外实现// {// this->m_name name;// this->m_age …

【PPT设计前沿】2024年PPT新趋势,让你的演示文稿引领潮流!

文章目录 一、简约风格的新诠释二、动态元素与交互性的深度融合三、个性化与定制化的独特展现四、大数据与可视化的创新应用五、绿色环保与可持续性的倡导《PPT完美设计入门与进阶/入门与进阶》图书特色内容简介目录前言/序言 获取方式 随着技术的不断革新和创意设计的蓬勃发展…

技术分析:开源大模型的兴起与热门项目推荐

技术分析&#xff1a;开源大模型的兴起与热门项目推荐 引言 随着人工智能&#xff08;AI&#xff09;技术的不断发展&#xff0c;开源大模型成为了许多程序员和研究人员关注的焦点。开源项目不仅促进了技术的快速迭代和普及&#xff0c;还为更多的人提供了学习和实践的机会。…

提取人脸——OpenCV

提取人脸 导入所需的库创建窗口显示原始图片显示检测到的人脸创建全局变量定义字体对象定义一个函数select_image定义了extract_faces函数设置按钮运行GUI主循环运行显示 导入所需的库 tkinter&#xff1a;用于创建图形用户界面。 filedialog&#xff1a;用于打开文件对话框。 …

PR软件视频抠图换背景

1 新建项目 2 新建序列 在项目的右下角有个图标&#xff0c;新建 序列 序列是视频的制作尺寸&#xff0c;根据自己的需要选择 3 新建颜色遮罩 在项目的右下角--新建颜色遮罩--选择黑色--确定 4 导入视频 把要导入视频的文件夹打开&#xff0c;把视频拖到 项目 里 把黑色遮罩拖…

苹果电脑下载vite包错

苹果电脑下载vite包错/Users/lili/.npm/_cacache/index-v5/c5/50/b451703d03b3802b9ee6b7ff2b0bde4de7f26830eb52c904d6911c137cf8包错解决方式 解决方式&#xff1a;sudo chown -R 501:20 "/Users/wangxin/.npm"

python连接数据库,相关数据处理

随机生成一千个数据插入large_db中 # 这是一个示例 Python 脚本。# 按 ShiftF10 执行或将其替换为您的代码。 # 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。 import pandas as pd from sqlalchemy import create_engine from faker import Faker# 初始化fa…

MySQL日志——redolog

redo log&#xff08;重做日志&#xff09; 为什么需要redo log&#xff1f; 在mysql提交一个事务后&#xff0c;这个事务所作的数据修改并不会直接保存到磁盘文件中&#xff0c;而是先保存在buffer pool缓冲区中&#xff0c;在需要读取数据时&#xff0c;先从缓冲区中找&…

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

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

Springboot 权限认证框架 -- SA-Token 简介(一)

引言 现今的软件开发中&#xff0c;权限认证与访问控制是每一个应用都必不可少的功能。SA-Token是一个简单、安全、易用的权限认证框架&#xff0c;它主要解决登录认证、权限认证、Session会话、单点登录等功能。SA-Token以其轻量级、零学习成本的特点&#xff0c;迅速赢得了开…

进程间通信以及线程的同步互斥机制

1.进程间通信机制 常用的六种通信机制&#xff1a; 管道、消息队列、共享内存、信号灯集、信号、Socket 管道&#xff08;Pipe&#xff09;和无名管道&#xff08;匿名管道&#xff09;&#xff1a; 管道是一种半双工的通信方式&#xff0c;数据只能单向流动&#xff0c;通常…