深度学习训练营之彩色图片分类
创始人
2024-03-23 02:50:00
0

深度学习训练营

  • 原文链接
  • 环境介绍
  • 前置工作
    • 设置GPU
  • 导入数据
  • 归一化操作
  • 图片可视化
  • 构建CNN网络
  • 进行编译
  • 模型训练
  • 结果可视化
    • 图片展示
    • 对图片的内容进行辨别
  • 模型的精度评估

原文链接

  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍦 参考文章:365天深度学习训练营-第P1周:实现mnist手写数字识别
  • 🍖 原作者:K同学啊|接辅导、项目定制

环境介绍

  • 语言环境:Python3.9.13
  • 编译器:jupyter notebook
  • 深度学习环境:TensorFlow2

前置工作

设置GPU

因为本次实验的数据量过大,所有设置多个GPU很有必要

# K同学啊深度学习练习
import tensorflow as tf
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")

导入数据

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()

数据量比较大,下载的时间会比较长
在这里插入图片描述

归一化操作

# 将像素的值标准化至0到1的区间内。
train_images, test_images = train_images / 255.0, test_images / 255.0train_images.shape,test_images.shape,train_labels.shape,test_labels.shape

在这里插入图片描述

图片可视化

对于图片的分类进行命名

[‘airplane’, ‘automobile’, ‘bird’, ‘cat’, ‘deer’,‘dog’, ‘frog’, ‘horse’, ‘ship’, ‘truck’]

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()

在这里插入图片描述

构建CNN网络

#设置CNN网络
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'])

模型训练

epoch设置为10,实现提高精度

#对模型进行训练
history = model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))

在这里插入图片描述

结果可视化

图片展示

#图片显示
plt.imshow(test_images[3])

在这里插入图片描述

对图片的内容进行辨别

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

在这里插入图片描述

模型的精度评估

#模型评估
import matplotlib.pyplot as pltplt.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)#打印结果

在这里插入图片描述

相关内容

热门资讯

搭建温暖桥梁:湖南芙蓉律师事务... 这个冬天,湖南芙蓉律师事务所想搭一座“温暖桥梁”——发起“橙”意满满助农公益捐赠活动,计划捐赠20万...
原创 日... 目前中日关系的紧张局势已经无法用摩擦或争议这些温和的词汇来形容了。真正发生的变化,不仅仅是某一具体事...
央行报告:着力健全有利于“长钱... 新京报贝壳财经讯 12月26日,中国人民银行发布《中国金融稳定报告(2025)》。报告提出,下一步,...
从“小洛熙”事件谈起:芙蓉律所... 近期,宁波大学附属妇女儿童医院发生的“小洛熙”事件引发了社会广泛关注。一名五月龄婴儿的不幸离世,在牵...
如何看待精神病人犯罪,普通人如... 这起精神病人杀人案备受关注,审判当天,许多市民在法院外围观。 成都27岁女子家门口被害案一审宣判后,...
云南昆明发布4项沿边特色的制度... 人民网昆明12月27日电 (记者蔡树菁)12月26日,中国(云南)自由贸易试验区昆明片区举行制度创新...
原创 大... 大学生起诉父亲追讨学费电脑费:亲情与法律的边界之争 当22岁的大学生张某将亲生父亲告上法庭索要学费和...
索赔23.14亿元!吉利子公司... 红星资本局12月27日消息,12月26日晚间,欣旺达(300207.SZ)披露公告称,子公司欣旺达动...
深化数智赋能 北京市检察机关有... 人民网北京12月27日电 (记者王子锋)虚假诉讼破坏社会诚信、损害人民群众合法权益、危害司法公信力,...