Tensorflow入门实战 P02-彩色图片分类

目录

1、序言

2、主要代码

3、运行结果展示

(1)展示cifar10里面的20张图片

(2)预测的图片

(3)模型评估


  • 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍖 原作者:K同学啊 | 接辅导、项目定制

1、序言

这篇博客,主要是讲的是彩色图片分类,数据集为:cifar10。

和以往的流程一样:

① 判断是否在GPU上运行

② 导入cifar10数据集

③ 归一化(将像素的值标准化至0-1的区间内)

④ 可视化数据集里的数据(展示了2行,共20张图片)

⑤ 搭建神经网络

⑥ 编译

⑦ 训练模型

⑧ 预测并显示预测的图片

⑨ 模型评估 

2、主要代码

import tensorflow as tf
from keras import datasets, layers, models
import matplotlib.pyplot as plt
import numpy as np
# 1、设置GPU
gpus = tf.config.list_physical_devices('GPU')if gpus:gpu0 = gpus[0]  # 如果有多个GPU,仅使用第0个GPUtf.config.experimental.set_memory_growth(gpu0,True)  # 设置GPU显存用量按需使用tf.config.set_visible_devices([gpu0], "GPU")# 2、导入数据
(train_images, train_labels), (test_images, test_labels) = datasets.cifar10.load_data()# 3、归一化
# 将像素的值标准化至0到1的区间内。
train_images, test_images = train_images / 255.0, test_images / 255.0
print(train_images.shape,test_images.shape,train_labels.shape,test_labels.shape)
# (50000, 32, 32, 3)     (10000, 32, 32, 3)    (50000, 1)          (10000, 1)# 4、可视化
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()# 二、搭建神经网络
model = models.Sequential([layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),  # 卷积层1,卷积核3*3layers.MaxPooling2D((2, 2)),  # 池化层1,2*2采样layers.Conv2D(64, (3, 3), activation='relu'),  # 卷积层2,卷积核3*3layers.MaxPooling2D((2, 2)),  # 池化层2,2*2采样layers.Conv2D(64, (3, 3), activation='relu'),  # 卷积层3,卷积核3*3layers.Flatten(),  # Flatten层,连接卷积层与全连接层layers.Dense(64, activation='relu'),  # 全连接层,特征进一步提取layers.Dense(10)  # 输出层,输出预期结果
])# model.summary()  # 打印网络结构# 三、编译
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))# 五、预测
plt.imshow(test_images[1])
plt.show()pre = model.predict(test_images)
print(class_names[np.argmax(pre[1])])# 六、模型评估
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_loss:", test_loss, "---------test_acc:", test_acc)

3、运行结果展示

(1)展示cifar10里面的20张图片

(2)预测的图片

遗憾,我的结果预测错误,预测的是:automobile

(3)模型评估

上图可以看到,测试精确度达到70%左右。

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

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

相关文章

postgressql——ReadBuffer_common函数(7)

PostgreSQL中ReadBuffer_common函数 数据结构 BufferDesc 共享缓冲区的共享描述符(状态)数据 typedef struct BufferDesc {//buffer tagBufferTag tag; /* ID of page contained in buffer *///buffer索引编号(0开始)int buf_id; /* buffers i…

大语言模型(一)OLMo

一、简介 OLMo 是由AI2 发布的大语言模型以及构建框架,与大多数之前的尝试只发布模型权重和推理代码不同,OLMo 开源了整个框架,包括训练数据、训练代码以及模型评估代码。 OLMo框架包括构建和研究语言模型所需的工具和资源。对于训练和建模,它包括完整的模型权重、训练代…

SZJG-离线环境成功安装Python和pip

在离线环境下安装Python和pip,可以按照以下步骤进行。假设你已经下载了Python的安装包 (Python-3.10.13.tgz)。 步骤 1:准备安装包 将 Python-3.10.13.tgz 拷贝到目标机器上的一个目录中,例如 /home/user/。 步骤 2:解压安装包…

4万字长文让人看懂ElementUI面试题及参考答案

ElementUI是什么?请简述其主要特点。 ElementUI是一个基于Vue.js的桌面端组件库,由饿了么团队开发并维护。它旨在为开发人员提供一套用于构建网页应用程序的高质量UI组件。ElementUI遵循Vue.js的设计思想,使得开发者可以快速地构建出风格统一、功能丰富的界面。 主要特点:…

水经微图PC版4.3.10发布

让GIS更简单高效,让地图更丰富及时! 水经微图(以下简称“微图”)新版已上线,在该版本中主要新增了天地图历史影像查看功能,以及其它功能的优化。 当前版本 当前版本号为:4.3.10 如果你发现该…

Pytorch反向传播算法(Back Propagation)

一:revise 我们在最开始提出一个线性模型。 x为我们的输入,w为权重。相乘的结果是我们对y的预测值。 那我们在训练时就是对这个权重w进行更新,就需要用到上一章提到的梯度下降算法,不断更新w。但是此时注意不是用y的预测值对w进…

linux centos nfs挂载两台服务器挂载统一磁盘目录权限问题

查看用户id id 用户名另一台为 修改uid和gid为相同id,添加附加组 usermod -u500 -Gwheel epms groupmod -g500 epms

网络协议。

一、流程案例 接下来揭秘我要说的大事情,“双十一”。这和我们要讲的网络协议有什么关系呢? 在经济学领域,有个伦纳德里德(Leonard E. Read)创作的《铅笔的故事》。这个故事通过一个铅笔的诞生过程,来讲述…

[代码复现]Self-Attentive Sequential Recommendation(ing)

参考代码:SASRec.pytorch 可参考资料:SASRec代码解析 前言:文中有疑问的地方用?表示了。可以通过ctrlF搜索’?。 环境 conda create -n SASRec python3.9 pip install torch torchvision因为我是mac运行的,所以device是mps 下面…

算法(七)插入排序

文章目录 插入排序简介代码实现 插入排序简介 插入排序(insertion sort)是从第一个元素开始,该元素就认为已经被排序过了。然后取出下一个元素,从该元素的前一个索引下标开始往前扫描,比该值大的元素往后移动。直到遇到比它小的元…

Caliburn.Micro框架学习笔记——Action的参数传递机制

据此篇文章,我们继续来谈谈Caliburn.Mirco的Action参数传递机制。因此程序结构都是默认MVVM的形式。 基本机制 它的机制是—— Caliburn.Micro 的智能对象参数绑定机制通过约定和反射使得视图和视图模型之间的交互变得更加直观和简洁。通过 cal:Message.Attach 语…

【C语言】探索文件读写函数的全貌

🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 🔥引言 本章将介绍文件读取函数的相关知识和展示使用场景&am…

vue中如何进行Markdown文档展示与解析

vue中如何进行Markdown文档展示与解析 一、安装插件二、如何使用 需求&#xff1a;接口返回了一个政策详情页面&#xff0c;里面有图片&#xff0c;用v-html展示的是url&#xff0c;所以改用vue-markdown 一、安装插件 npm install vue-markdown --save二、如何使用 <vue-…

RabbitMQ 如何保证消息不丢失

开启消息确认机制&#xff1a; 在发布消息时&#xff0c;可以设置deliveryMode为2&#xff08;持久化&#xff09;&#xff0c;以确保消息不会因为RabbitMQ的崩溃而丢失。 使队列持久化&#xff1a; 通过设置durable为true&#xff0c;可以确保队列在RabbitMQ重启后依然存在。…

Python 实战:打造智能进销存系统

想象一下&#xff0c;在繁忙的商店里&#xff0c;每天都有数以百计的商品进进出出&#xff0c;库存在不断变化&#xff0c;销售数据涌入&#xff0c;而你却能轻松应对一切。是的&#xff0c;Python 可以帮你实现这一切。本文将教你如何使用 Python 构建一个智能的进销存系统&am…

学习记录-5.30

学习记录-5.30 同步在我的博客可以来看看 http://www.zhihuigou.top/ ### Golang为什么比别的语言跟擅长并发: 首先是因为Goroutine&#xff0c;算是go的一个最大的特色 是轻量级的线程,创建一个goroutine的开销非常小,大约几KB,且调度开销很低 并且goroutine的调度,并不…

React组件通信——兄弟组件

兄弟组件通信 方法一&#xff1a;状态提升 子组件先将数据传递到父组件&#xff0c;父组件再把数据传到另一个子组件中。 import { useState } from "react"; // 定义A组件&#xff0c;向B组件发送数据 function A({ onGetMsg }) {const name "this is A na…

fyne apptab布局

fyne apptab布局 AppTabs 容器允许用户在不同的内容面板之间切换。标签要么只是文本&#xff0c;要么是文本和一个图标。建议不要混合一些有图标的标签和一些没有图标的标签。 package mainimport ("fyne.io/fyne/v2/app""fyne.io/fyne/v2/container"//&…

PolarDB分布式架构学习笔记

PolarDB分布式是什么&#xff1f; 业务场景有哪些&#xff1f; 分布式焦点问题&#xff1f; 技术架构 CN DN介绍 CDC组件介绍 Columnar组件介绍 视频学习&#xff1a;PolarDB 实操课 第一讲&#xff1a;PolarDB分布式版架构介绍_哔哩哔哩_bilibili

都在说的跨网文件共享系统是什么?企业该怎么甄选?

跨网文件共享系统成为越来越受关注的产品焦点&#xff0c;那么跨网文件共享系统是什么呢&#xff1f;跨网文件共享是指在不同网络之间共享文件的过程&#xff0c;使得不同网络中的用户可以访问和使用共享的文件。 原则上而言&#xff0c;不同网络间的文件是无法共享的&#xff…