Fashion MNIST(使用全连接神经网络实现)

Fashion MNIST(服饰数据集)的作用是经典MNIST数据集的简易替换,MNIST数据集包含手写数字(阿拉伯数字)的图像,两者图像格式及大小都相同。Fashion MNIST比常规 MNIST手写数据将更具挑战性。两者数据集都较小,主要适用于初学者学习或验证某个算法可否正常运行。他们是测试和调试代码的良好起点。

Fashion MNIST/服饰数据集包含70000张灰度图像,其中包含60,000个示例的训练集和10,000个示例的测试集,每个示例都是一个28x28灰度图像,分为以下几类:

Label Description
0 T恤(T-shirt/top)
1 裤子(Trouser)
2 套头衫(Pullover)
3 连衣裙(Dress)
4 外套(Coat)
5 凉鞋(Sandal)
6 衬衫(Shirt)
7 运动鞋(Sneaker)
8 包(Bag)
9 靴子(Ankle boot)

利用fashion mnist数据集常用的就是服饰的分类与预测等等
1、导入库和输出训练集的大小

import tensorflow as tf
import numpy as np
from tensorflow import keras
import matplotlib.pylab as plt
%matplotlib inline
(x_train, y_train), (x_test, y_test)=tf.keras.datasets.fashion_mnist.load_data()
print('训练集的数量,宽/长分别为:', x_train.shape)
print('测试集的数量,宽/长分别为:', x_test.shape)


2、命名一个表单显示训练集实物名称,输出训练集中的第一百个,输出名

class_names=['T-shirt','Trouser','Pullover','Dress','Coat','Sandal','Shirt','Sneaker','Bag','Ankle boot']
np.set_printoptions(linewidth=500)
print('x_train[100] = \n', x_train[100])
print('y_train[100] = ', y_train[100])
print('这个是',class_name[y_train[100]])


3、将数据归一化处理

x_train, x_test = x_train / 255.0, x_test / 255.0np.set_printoptions(precision=1, suppress=True)
print('x_train[100] = \n', x_train[100])


4、使用one-hot编码,输出最可能的值

y_train = tf.keras.utils.to_categorical(y_train)
y_test = tf.keras.utils.to_categorical(y_test)print('y_train[100] = ', y_train[100])


5、建立全连接模型,这里了两个全连接层,(可以视情况而定的改变一下层数)

model = tf.keras.models.Sequential([# 建立模型#Flatten变成784 的输入tf.keras.layers.Flatten(input_shape = (28,28)),tf.keras.layers.Dense(128,activation = 'relu'),tf.keras.layers.Dense(64, activation='relu'),#全连接层 10tf.keras.layers.Dense(10,activation = 'softmax')  #输出层
])
print(model.summary()) #打印模型


6、对模型进行训练,

#设置优化器和损失函数
model.compile(optimizer = tf.keras.optimizers.Adam(),  #优化器loss = tf.keras.losses.categorical_crossentropy,metrics = ['acc'])
#
model.fit(x_train,y_train,epochs=15)  #轮数



因为没有调优等,所以模型评分只有0.87

上诉是使用全连接实现的模型,
来了,上代码:

import tensorflow as tf
import numpy as np
from tensorflow import keras
import matplotlib.pylab as plt
%matplotlib inline
(x_train, y_train), (x_test, y_test)=tf.keras.datasets.fashion_mnist.load_data()
print('训练集的数量,宽/长分别为:', x_train.shape)
print('cs集的数量,宽/长分别为:', x_test.shape)
print('标签的样式:', y_test)
plt.imshow(x_train[0])
plt.colorbar()
plt.grid(False)
plt.show()
#制作标签名称
class_names=['T-shirt','Trouser','Pullover','Dress','Coat','Sandal','Shirt','Sneaker','Bag','Ankle boot']
#图片数据归一化
x_train = x_train/255.0
x_test = x_test/255.0
plt.figure(figsize=(10,10))
#构建3层DNN模型,使用激活函数softmax
model=keras.Sequential([tf.keras.layers.Flatten(input_shape=(28,28)),tf.keras.layers.Dense(128, activation='relu'),tf.keras.layers.Dense(10, activation='softmax')
])
#定义模型的损失函数,优化器与评估指标
model.compile(optimizer=keras.optimizers.Adam(lr=0.005),loss='sparse_categorical_crossentropy',metrics=['accuracy'])
#训练模型
model.fit(x_train,y_train,epochs=5)
#评估模型
test_loss, test_acc=model.evaluate(x_test, y_test)
print('模型准确率', test_acc)
#预测 103
predictions = model.predict(x_test)
print(predictions[103])
print('预测结果:', class_names[np.argmax(predictions[103])])
print('真实结果:', class_names[y_test[103]])
plt.imshow(x_test[103])
plt.colorbar()
plt.grid(False)
plt.show()
#评估模型
print(model.evaluate(x_test, y_test, verbose=False))
pred = np.argmax(model.predict(x_test),axis=1)
#找到前100个预测错误的
for i in range(0,30):if pred[i] != y_test[i]:print('真实结果:', class_names[pred[i]])plt.imshow(x_test[i])print('预测是:', class_names[y_test[i]])print('第',i ,'预测错了')break

pyrhon深度学习之Fashion MNIST相关推荐

  1. 写给初学者的深度学习教程之 MNIST 数字识别

    一般而言,MNIST 数据集测试就是机器学习和深度学习当中的"Hello World"工程,几乎是所有的教程都会把它放在最开始的地方.这是因为,这个简单的工程包含了大致的机器学习流程,通过练习这个工程 ...

  2. 深度学习——CNN实现MNIST手写数字的识别

    ​活动地址:CSDN21天学习挑战赛 目录 知识点介绍 MNIST 介绍 下载 数据的简单处理 CNN神经网络 CNN的作用 CNN的主要特征 CNN的神经网络结构 CNN的相关参数 MNIST识别的 ...

  3. 深度学习笔记(MNIST手写识别)

    先看了点花书,后来觉得有点枯燥去看了b站up主六二大人的pytorch深度学习实践的课,对深度学习的理解更深刻一点,顺便做点笔记,记录一些我认为重要的东西,便于以后查阅. 一. 机器学习基础 学习的定 ...

  4. 深度学习入门初步——MNIST数据格式如何使用

    网上直接下载了MNIST数据集 解压后发现里面每个压缩包里有一个idx-ubyte文件,没有图片文件在里面.IDX文件格式,是一种用来存储向量与多维度矩阵的文件格式. 程序 转至:https://bl ...

  5. 深度学习入门demo mnist

    文章目录 环境 1.全连接层实现 2.使用LeNet-5实现 模型框架 实现代码 模型总结 3.AlexNet 模型框架 模型实现 模型总结 VGG 模型总结 环境 python3.7 gpu: RT ...

  6. 赋予人工智能记忆的人,带你梳理深度学习核心算法

    新智元翻译1 来源:Idsia 作者:Jürgen Schmidhuber 翻译:张巨岩 作者介绍:Jürgen Schmidhuber 被称为是赋予人工智能记忆的人,递归神经网络之父,2004 年到 ...

  7. 2 万字全面测评深度学习框架 PaddlePaddle、TensorFlow 和 Keras | 程序员硬核评测

    [CSDN 编者按]人工智能想入门深度学习?却苦恼网上的入门教程太零碎,不知道用什么框架好?本文作者用两万字手分别从百度的PaddlePaddle深度学习框架.Google的TensorFlow深度学 ...

  8. 聊一下“深度学习”的基本思想

    深度学习这两年非常火热,带动人工智能新一轮热潮.这两天在图像之别.自然语言分析.语音识别等方面乃至围棋方面,之所以能够有突破完全是因为深度学习的功劳.很多数据分析.数据挖掘的相关从业者都会或多或少的关 ...

  9. Halcon 深度学习之水果分类

    前言 想要顺利跑通18版本的深度学习,需要三个条件. 1.需要一张支持GPU加速的显卡(18版本不支持CPU训练). 2.配置深度学习环境(这个相对于Caffe.Tenserflow.Pytorch环 ...

最新文章

  1. 华人团队用Transformer做风格迁移,速度快、可试玩,网友却不买账
  2. dubbo2.5.6从下载到编译成功并且部署成功过程
  3. 电商网站的积分要不要年末清零?
  4. 第一节、Alex 讲解 python+mysql 交互;
  5. Facebook力推导航库:React Navigation使用详解
  6. promise 是什么?有哪些状态和参数?如何使用?
  7. diskgenius 数据迁移_U盘格式化后数据恢复免费方法教程
  8. wpf Webbrowser 乱码问题及弹窗被遮挡
  9. docker安装xxl-job-admin步骤
  10. 1218 溢出设置 overflow
  11. 进程调度主要函数解析
  12. python文件IO中的二进制格式与文本格式
  13. WINDOWS10更改主题
  14. STC学习:温度与光照传感器
  15. 十沣科技自主研发仿真软件 有效实现飞机起落噪声精细仿真
  16. x264 vbv-maxrate与vbv-bufsize对码率控制
  17. 【容斥好题】HDU - 5514 F - Frogs
  18. android webview 跳转系统浏览器,webview 调用系统浏览器怎么解决
  19. 三刷红宝书之 JavaScript 的引用类型
  20. 我的爱好作文玩计算机800,我的爱好作文800字

热门文章

  1. 迷你世界中如何使用脚本
  2. linux 创建新用户时没有用户目录
  3. 绝对精品推荐做前端的看下:Web前端开发体会十日谈
  4. 下一代微服务架构——服务网格Service Mesh
  5. 英语语法简介-句子结构
  6. 设计师神器_随机形状生成器
  7. android radiogroup 添加,如何在android中动态添加textview到radiogroup
  8. python自动回复机器人手机版_教你用python做一个哄女友的微信自动回复机器人
  9. android搭建网络框架,Android 搭建MVP+Retrofit+RxJava网络请求框架(三)
  10. 移动电子商务金融特点