对Fashion._mnist进行10分类ipynb

这篇具有很好参考价值的文章主要介绍了对Fashion._mnist进行10分类ipynb。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'#设置tensorflow的日志级别
from tensorflow.python.platform import build_info

import tensorflow as tf

# 列出所有物理GPU设备  
gpus = tf.config.list_physical_devices('GPU')  
if gpus:  
    # 如果有GPU,设置GPU资源使用率  
    try:  
        # 允许GPU内存按需增长  
        for gpu in gpus:  
            tf.config.experimental.set_memory_growth(gpu, True)  
        # 设置可见的GPU设备(这里实际上不需要,因为已经通过内存增长设置了每个GPU)  
        # tf.config.set_visible_devices(gpus, 'GPU')  
        print("GPU可用并已设置内存增长模式。")  
    except RuntimeError as e:  
        # 虚拟设备未就绪时可能无法设置GPU  
        print(f"设置GPU时发生错误: {e}")  
else:  
    # 如果没有GPU  
    print("没有检测到GPU设备。")

import numpy as np
import matplotlib.pyplot as plt
print(tf.__version__)

fashion_mnist = tf.keras.datasets.fashion_mnist

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

# 将数据保存到 npz 文件中  
np.savez_compressed('./datasets/fashion_mnist.npz',  
                      train_images=train_images,  
                      train_labels=train_labels,  
                      test_images=test_images,  
                      test_labels=test_labels)

data=np.load('./datasets/fashion_mnist.npz')

train_images = data['train_images']  
train_labels = data['train_labels']  
test_images = data['test_images']  
test_labels = data['test_labels']

print(train_images.shape,train_labels.shape,np.unique(train_labels))

print(train_images.max(),train_images.min())

#数字标签对应的类别
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

plt.figure()
plt.imshow(train_images[0])
plt.colorbar()
plt.grid(False)
plt.show()

# 将这些值缩小至 0 到 1 之间,然后将其馈送到神经网络模型
#归一化
train_images = train_images / 255.0
test_images = test_images / 255.0

plt.figure(figsize=(10,10))
for i in range(25):#展示25张图片
    plt.subplot(5,5,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]])#显示横轴标签为数字标签对应的真实类别
plt.show()

model = tf.keras.Sequential([
    tf.keras.layers.Input(shape=((28,28))),
    tf.keras.layers.Flatten(),#扁平化处理成行向量
    tf.keras.layers.Dense(128, activation='relu'),#线性转换层
    tf.keras.layers.Dense(10)#输出层,10个分值,对应模型对于输入数据应该属于这10个类别的置信度
])

model.summary()

#优化器,损失函数,指标,这个损失会对标签做类似one-hot的处理
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

model.fit(train_images, train_labels, epochs=10)

test_loss, test_acc = model.evaluate(test_images,  test_labels, verbose=2)
print('\nTest accuracy:', test_acc)

#模型训练好后可以加一个概率层把logits转换成概率
probability_model = tf.keras.Sequential([model,
                                         tf.keras.layers.Softmax()])

predictions = probability_model.predict(test_images)

np.argmax(predictions[0])#获取其中最大值对应的索引下标

test_labels[0]

def plot_image(i, predictions_array, true_label, img):
  true_label, img = true_label[i], img[i]
  plt.grid(False)
  plt.xticks([])
  plt.yticks([])
  plt.imshow(img, cmap=plt.cm.binary)
  predicted_label = np.argmax(predictions_array)
  if predicted_label == true_label:
    color = 'blue'
  else:
    color = 'red'
  plt.xlabel("{} {:2.0f}% ({})".format(class_names[predicted_label],
                                100*np.max(predictions_array),
                                class_names[true_label]),
                                color=color)
def plot_value_array(i, predictions_array, true_label):
  true_label = true_label[i]
  plt.grid(False)
  plt.xticks(range(10))
  plt.yticks([])
  thisplot = plt.bar(range(10), predictions_array, color="#777777")
  plt.ylim([0, 1])
  predicted_label = np.argmax(predictions_array)
  thisplot[predicted_label].set_color('red')
  thisplot[true_label].set_color('blue')

i = 0
plt.figure(figsize=(6,3))
plt.subplot(1,2,1)
plot_image(i, predictions[i], test_labels, test_images)
plt.subplot(1,2,2)
plot_value_array(i, predictions[i],  test_labels)
plt.show()

i = 12
plt.figure(figsize=(6,3))
plt.subplot(1,2,1)
plot_image(i, predictions[i], test_labels, test_images)
plt.subplot(1,2,2)
plot_value_array(i, predictions[i],  test_labels)
plt.show()

# 让我们用模型的预测绘制几张图像。请注意,即使置信度很高,模型也可能出错
num_rows = 5
num_cols = 3
num_images = num_rows*num_cols
plt.figure(figsize=(2*2*num_cols, 2*num_rows))
for i in range(num_images):
  plt.subplot(num_rows, 2*num_cols, 2*i+1)
  plot_image(i, predictions[i], test_labels, test_images)
  plt.subplot(num_rows, 2*num_cols, 2*i+2)
  plot_value_array(i, predictions[i], test_labels)
plt.tight_layout()
plt.show()

#最后,使用训练好的模型对单个图像进行预测
img = test_images[1]
print(img.shape)

#在0轴增加1个维度
img = (np.expand_dims(img,0))
print(img.shape)

predictions_single = probability_model.predict(img)
print(predictions_single)

plot_value_array(1, predictions_single[0], test_labels)
_ = plt.xticks(range(10), class_names, rotation=45)
plt.show()

np.argmax(predictions_single[0])

test_labels[1]文章来源地址https://www.toymoban.com/news/detail-846549.html

到了这里,关于对Fashion._mnist进行10分类ipynb的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能分类算法概述

    人工智能分类算法是用于将数据划分为不同类别的算法。这些算法通过学习数据的特征和模式,将输入数据映射到相应的类别。分类算法在人工智能中具有广泛的应用,如图像识别、语音识别、文本分类等。以下是几种常见的人工智能分类算法的详细讲解过程: 决策树 决策

    2024年04月11日
    浏览(31)
  • 人工智能文本分类

    在本文中,我们全面探讨了文本分类技术的发展历程、基本原理、关键技术、深度学习的应用,以及从RNN到Transformer的技术演进。文章详细介绍了各种模型的原理和实战应用,旨在提供对文本分类技术深入理解的全面视角。 文本分类作为人工智能领域的一个重要分支,其价值

    2024年02月03日
    浏览(36)
  • 【人工智能】基于分类算法的学业预警

    党的二十大报告指出:“我们要坚持教育优先发展、科技自立自强、人才引领驱动,加快建设教育强国、科技强国、人才强国,坚持为党育人、为国育才,全面提高人才自主培养质量,着力造就拔尖创新人才,聚天下英才而用之”。学生是祖国的未来,如何培养出优秀的接班

    2024年01月22日
    浏览(46)
  • 基于残差网络的人工智能文本分类方法

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 随着互联网和电子商务的快速发展,文本分类技术在自然语言处理领域取得了重要地位。在实际应用中,人们需要处理大量的文本数据,例如新闻报道、社交媒体内容、公司业务邮件等。自动化文本分类方法可以帮助人们快

    2024年02月07日
    浏览(29)
  • 【人工智能Ⅱ】实验2:VGG图像分类

    实验2:VGG图像分类 一:实验目的与要求 1:掌握VGG网络的原理与结构。 2:学会利用VGG网络建立训练模型,并对模型进行评估。 3:学会使用VGG网络进行分类。 二:实验内容 1:用VGG网络对自选图像数据集进行多分类预测。 2:应用图像增强方法进行数据集的扩充。 3:调整

    2024年04月26日
    浏览(33)
  • 【人工智能】监督学习、分类问题、决策树、信息增益

    什么是决策树 —— 基本概念 非叶节点:一个属性上的测试,每个分枝代表该测试的输出 叶节点:存放一个类标记 规则:从根节点到叶节点的一条属性取值路径 模型训练:从已有数据中生成一棵决策树 分裂数据的特征,寻找决策类别的路径 相同的数据,根据不同的特征顺

    2024年02月16日
    浏览(37)
  • 人工智能-机器学习-深度学习-分类与算法梳理

    目前人工智能的概念层出不穷,容易搞混,理清脉络,有益新知识入脑。 为便于梳理,本文只有提纲,且笔者准备仓促,敬请勘误,不甚感激。 符号主义(Symbolists) 基于逻辑推理的智能模拟方法。最喜欢的算法是:规则和决策树。符号主义的代表性成果有启发式程序、专家系

    2024年02月03日
    浏览(72)
  • 人工智能在心电信号分类中的应用

    目录 1 引言 2 传统机器学习中的特征提取与选择 3 深度学习中的特征提取与选择

    2024年02月14日
    浏览(36)
  • 人工智能中的文本分类:技术突破与实战指导

    在本文中,我们全面探讨了文本分类技术的发展历程、基本原理、关键技术、深度学习的应用,以及从RNN到Transformer的技术演进。文章详细介绍了各种模型的原理和实战应用,旨在提供对文本分类技术深入理解的全面视角。 关注TechLead,分享AI全维度知识。作者拥有10+年互联网

    2024年02月05日
    浏览(24)
  • 毕业设计:基于深度学习的图像分类识别系统 人工智能

    目录 前言 项目背景 数据集 设计思路 自注意力 网络模型 实验环境 实验结果分析 更多帮助     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课

    2024年04月16日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包