2020-11-29 TensorFlow 2 学习笔记(一)MNIST 图像分类

TensorFlow 2 学习笔记(一)MNIST 图像分类

摘自tensorflow2学习网站极客兔兔:https://geektutu.com/post/tf2doc-ml-basic-image.html

开发环境win10+GTX970M+cuda_10.1.243_426.00_win10+cudnn-10.1-windows10-x64-v7.6.5.32+conda 4.8.3+python3.7

注意cuda和cudnn版本一定要一致不然tensorflow运行不成GPU版的,可以参考博文配置:https://blog.csdn.net/wangbowj123/article/details/89381562

import tensorflow as tf
from tensorflow import keras
import numpy as np
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels),(test_images, test_labels) = fashion_mnist.load_data()
print(test_images.shape)
print(len(train_labels))
print(train_labels)
#1.预处理
train_images = train_images / 255.0;
test_images = test_images / 255.0;
#2.模型搭建 
#网络的第一层,Flatten将输入从28x28 的二维数组转为784的一维数组,这一层的作用仅仅是将每一行值平铺在一行。
#接下来是2层Dense,即全连接层(fully connected, FC),第一层Dense有128个神经元。第二层有10个神经元,经过 softmax 后,返回了和为1长度为10的概率数组,每一个数分别代表当前图片属于分类0-9的概率。

model  =keras.Sequential([keras.layers.Flatten(input_shape=(28,28)),
                          keras.layers.Dense(128,activation='relu'),
                          keras.layers.Dense(10,activation='softmax')])
#3.编译模型
#模型准备训练前,在模型编译(Compile)时还需要设置一些参数。
#Loss function - 损失函数,训练时评估模型的正确率,希望最小化这个函数,往正确的方向训练模型。
#Optimizer - 优化器算法,更新模型参数的算法。
#Metrics - 指标,用来监视训练和测试步数,下面的例子中使用accuracy,即图片被正确分类的比例。

model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
#4.模型训练
#训练神经网络,通常有以下几个步骤。
#传入训练数据,train_images和train_labels。
#训练模型去关联图片和标签。
#模型对测试集test_images作预测,并用test_labels验证预测结果。

model.fit(train_images, train_labels, epochs=10)
#5.评估准确率(测试集表现)
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('\nTest accuracy:', test_acc)
#6.预测使用predict函数进行预测
predictions = model.predict(test_images)
print(predictions[0]) #查看第一张图片的预测结果

运行结果:

runfile('C:/Users/Administrator/tensorflow_test.py', wdir='C:/Users/Administrator')
Reloaded modules: tmpnengecw2
(10000, 28, 28)
60000
[9 0 0 ... 3 0 5]
Epoch 1/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.5036 - accuracy: 0.8227
Epoch 2/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3766 - accuracy: 0.8648
Epoch 3/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3382 - accuracy: 0.8763
Epoch 4/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3152 - accuracy: 0.8849
Epoch 5/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2957 - accuracy: 0.8910
Epoch 6/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2803 - accuracy: 0.8967
Epoch 7/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2669 - accuracy: 0.9003
Epoch 8/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2568 - accuracy: 0.9042
Epoch 9/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2490 - accuracy: 0.9065
Epoch 10/10
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2401 - accuracy: 0.9099
313/313 [==============================] - 0s 1ms/step - loss: 0.3464 - accuracy: 0.8774

Test accuracy: 0.8773999810218811
[4.6233322e-07 7.2229778e-11 1.7704366e-09 8.8355392e-08 1.2499025e-07
 1.7034984e-04 2.0131968e-06 6.5377176e-02 3.8154587e-07 9.3444949e-01]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值