T2打卡——彩色图片分类

news2024/9/19 21:55:30
  • 🍨 本文为🔗365天深度学习训练营中的学习记录博客
  • 🍖 原作者:K同学啊

1.导入数据:

#设置gpu
import tensorflow as tf
gpus=tf.config.list_physical_devices('GPU')
if gpus:
    #如果有多个gpu仅使用第一个
    gpu0=gpus[0]
    #设置gpu显存用量按需使用
    tf.config.experimental.set_memory_growth(gpu0,True)
    tf.config.set_visible_devices([gpu0],'GPU')
#导入数据
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt

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

2.数据预处理

#归一化数据
tarin_images,test_images=train_images/155.0,test_images/255.0
train_images.shape,test_images.shape,train_labels.shape,test_labels.shape

3.数据可视化

class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer','dog', 'frog', 'horse', 'ship', 'truck']
plt.figure(figsize=(20,10))
for i in range(20):
    plt.subplot(5,10,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(train_images[i],cmap=plt.cm.binary)
    plt.xlabel(class_names[train_labels[i][0]])
plt.show

4.建立模型

model = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)), #卷积层1,卷积核3*3
    layers.MaxPooling2D((2, 2)),                   #池化层1,2*2采样
    layers.Conv2D(64, (3, 3), activation='relu'),  #卷积层2,卷积核3*3
    layers.MaxPooling2D((2, 2)),                   #池化层2,2*2采样
    layers.Conv2D(64, (3, 3), activation='relu'),  #卷积层3,卷积核3*3
    
    layers.Flatten(),                      #Flatten层,连接卷积层与全连接层
    layers.Dense(64, activation='relu'),   #全连接层,特征进一步提取
    layers.Dense(10)                       #输出层,输出预期结果
])

model.summary()

5.训练模型

model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

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

6.预测数据及模型评估

import numpy as np
pre=model.predict(test_images)
print(class_names[np.argmax(pre[1])])

import matplotlib.pyplot as plt

plt.plot(history.history['accuracy'], label='accuracy')
plt.plot(history.history['val_accuracy'], label = 'val_accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.ylim([0.5, 1])
plt.legend(loc='lower right')
plt.show()

test_loss, test_acc = model.evaluate(test_images,  test_labels, verbose=2)

print(test_acc)

知识总结:      

池化层对提取到的特征信息进行降维,一方面使特征图变小,简化网络计算复杂度;另一方面进行特征压缩,提取主要特征,增加平移不变性,减少过拟合风险。但其实池化更多程度上是一种计算性能的一个妥协,强硬地压缩特征的同时也损失了一部分信息,所以现在的网络比较少用池化层或者使用优化后的如SoftPool。

池化层包括最大池化层(MaxPooling)和平均池化层(AveragePooling),均值池化对背景保留更好,最大池化对纹理提取更好)。同卷积计算,池化层计算窗口内的平均值或者最大值。

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

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

相关文章

基于图谱的记忆存储 - mem0 graph memory + neo4j

log 日志版 【LLM最强大脑】基于图谱的记忆存储 - mem0 graph memory neo4j_哔哩哔哩_bilibili 获取API Key 谷歌邮箱注册,需科学上网,你知道的┗|`O′|┛ 嗷~~ 获取 mem0ai key Dashboard | Mem0.ai 获取 neo4j key Neo4j Graph Databa…

Linux:软硬连接和动静态库

一般ll一下,最左边一列就是文件类型: 怎么创建链接文件: ln -s 目标文件 创建的链接文件名 来试试:这叫软连接,软连接相当于Windows下的快捷方式,直接指向原文件的绝对路径;删除软连接不影响原…

通义千问大模型Java调用,百炼

文章目录 一、大模型服务平台[百炼](https://help.aliyun.com/zh/model-studio/getting-started)二、Java sdk调用与eventStream三、百炼平台其它 一、大模型服务平台百炼 百炼是阿里新出的一个大模型服务平台,聚合了多个千问大模型及其它一些大模型的调用&#xf…

【MySQL】Ubuntu22.04安装MySQL8.0.39及修改默认用户名和密码

文章目录 安装mysql1. 下载mysql2. 查看mysql版本3. 启动mysql服务(通常在安装后自动启动)4. 运行安全配置脚本 修改用户名和密码1. 查看mysql自动设置的随机账号与密码2. 用默认账号密码登录mysql3. 找到账号密码有关的数据库4. 更改用户名和密码mysql5…

C++:AVL树保姆级详解

目录 AVL树概念 AVL树的性质 AVL树节点定义 AVL树的构造函数和拷贝函数 构造函数 拷贝构造 AVL树的插入(灰常重要) 更新平衡因子 什么时候向上调整平衡因子 如何向上调整平衡因子 旋转 左单旋 右左单旋 右单旋 左右单旋 AVL树的验证 验证是否是二叉搜索树 这…

Apollo星火计划基础速记

1 Apollo规划模块 规划根据感知预测的结果,当前定位信息以及Routing的结果,规划出一条安全行驶的轨迹送给控制模块 其中NaviPlanning主要用于高速公路的导航规划,OnLanePlanning用于城区及高速公路各种复杂车道;OpenSpacePlanning用于没有车道线的场景,主要在自主泊车和狭…

JavaDS —— 并查集

并查集概念 案例引入: 假设现在有三个程序设计小分队,分别来自广东,广西和海南,其中广东小分队人员的编号为{0,6,7,8} 广西小分队人员编号为{1,4,9},海南小分…

关于WebZip乱码目录文件名修改

先引用一段 来描述问题: 在IT行业中,我们经常遇到与编码和字符集有关的问题,特别是在处理包含中文字符的文件或目录时。"WebZip乱码目录文件名修改"这个问题就是一个典型的例子,涉及到Webzip工具在下载包含中文路径的文…

清洁眼镜片

经常眼镜弄脏了 怎么弄都干净不了 根本无法佩戴 影响出门时间 有时在外很尴尬 其实清洁很简单 从水龙水冲洗镜片(可附上洗手液) 然后用纸巾局部点触抹干偶尔泛起小水滴 就好

计算机毕业设计SpringBoot+VUE自动灌装生产线 MES 系统设计

采用 B/S 架构,MES 应用软件通过 TCP/IP 协议与自动灌装生产线上的各个工作单元中的 PLC 控制器进行通信,查询或采集由 PLC 控制器采集的生产数据。通过 JAVA 构建的平台与数据库进行连接,实现灌装生产线的生产管理、订单管理、质量管理和数据…

DPDK基础入门(六):从PCIe事务的角度看包处理

PCIe PCI Express(Peripheral Component Interconnect Express)又称PCIe,它是一种高速串行通信互联标准。PCIe规范遵循开放系统互联参考模型(OSI),自上而下分为事务传输层、数据链路层、物理层。对于特定的…

【Hot100】LeetCode—70. 爬楼梯

目录 1- 思路动规五部曲 2- 实现⭐763. 划分字母区间——题解思路 3- ACM 实现 原题链接:70. 爬楼梯 1- 思路 动规五部曲 1- dp 数组创建,确定含义 dp[i] 代表到达 楼梯 i 的方法数 2- 状态转移方程 因为一共有两种移动的方式,当前 dp[i] …

基于Java的垃圾分类网站系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:SpringBoot框架,B/S架构 工具:MyEclipse, Tomcat 系统展示 首页 用户管理…

Radmin-同一局域网只需IP就可以控制电脑

Radmin小编十多年前就在用,它是一款非常好用的局域网控制工具,可以完全替代Windows自带的远程桌面,它的安全性和便于操作性都比Windows的远程桌面好用。 Radmin还有一个好处,就是远程别人电脑时,对方那边毫无察觉&…

明明的随机数处理问题分析与解决方案

明明的随机数处理问题分析与解决方案 引言问题描述解决方案数据结构设计具体步骤伪代码C语言实现详细解释读取输入去重操作排序操作输出结果复杂度分析引言 明明生成了N个1到500之间的随机整数,我们需要对这些整数进行处理,删去重复的数字,然后进行排序并输出结果。本文将详…

【JavaScript】LeetCode:16-20

文章目录 16 无重复字符的最长字串17 找到字符串中所有字母异位词18 和为K的子数组19 滑动窗口最大值20 最小覆盖字串 16 无重复字符的最长字串 滑动窗口 哈希表这里用哈希集合Set()实现。左指针i,右指针j,从头遍历数组,若j指针指向的元素不…

jmeter性能测试HTML测试报告生成详解

作用:jmeter支持生成HTML测试报告,方便查看测试计划中获得图表和统计信息 命令: jmeter -n -t [jmx file] -l [result file] -e -o [html report folder] 示例:jmeter -n -t login.jmx -l result.jtl -e -o ./report jmx文件&a…

玛雅Maya2024下载安装教程影视三维3D设计教程百度网盘分享链接地址

玛雅Maya下载安装教程影视三维3D设计教程百度网盘分享链接地址,玛雅是一款3d设计软件。Maya 是由 Autodesk 公司开发的专业三维计算机图形软件。主要应用于影视特效制作、游戏开发、广告设计和工业设计等领域。在影视特效中,可创建逼真特效场景和角色动画&#xff1…

【Day09-IO-字符流其它流】

IO流 IO流-字符流 字节流:适合复制文件等,不适合读写文本文件 字符流:适合读写文本文件内容 FileReader(文件字符输入流) 作用:以内存为基准,可以把文件中的数据以字符的形式读入到内存中来。 …

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作…