机器学习笔记(二十)——Tensorflow 2 入门(mnist与fashion_mnist)

本博客仅用于个人学习,不用于传播教学,主要是记自己能够看得懂的笔记(

学习知识来自:tensorflow2.0入门与实战 2019年最通俗易懂的课程_哔哩哔哩_bilibili

现在再来看Tensorflow的官方教程(初学者的 TensorFlow 2.0 教程  |  TensorFlow Core (google.cn)),才能多少懂一点。mnist是一个手写数字数据库,里面都是28*28的手写数字图片,同时还有对应的标签,表示它们是哪个数字。这样就可以直接利用神经网络进行数字判断。

其中,softmax是一种分类激活函数,sparse_categorical_crossentropy是多分类交叉熵损失函数,Flatten就是将二维函数铺平成一维的一层。

Python代码如下:

import tensorflow as tf
import matplotlib.pyplot as plt

mnist=tf.keras.datasets.mnist #从datasets中找到mnist数据集
(x_train,y_train),(x_test,y_test)=mnist.load_data() #将mnist的数据分成训练数据和测试数据
x_train,x_test=x_train/255.0,x_test/255.0 #每个数据都是一张28*28的图,每个像素都是0~255的数字,此操作为归一化

plt.imshow(x_train[0])
plt.show()

print(x_train[0].shape)

model=tf.keras.Sequential([
    tf.keras.layers.Flatten(input_shape=(28,28)), #将输入的数据转化为一维
    tf.keras.layers.Dense(128,activation='relu'),
    tf.keras.layers.Dense(10,activation='softmax') #softmax激活函数用于分类,求出每个类别的概率。
])

model.compile(
    optimizer='adam',
    loss='sparse_categorical_crossentropy',
    metrics=['accuracy']
)

model.fit(x_train,y_train,epochs=5)

model.evaluate(x_test,y_test)

得到结果:

(28, 28)

Epoch 5/5
1875/1875 [==============================] - 8s 4ms/step - loss: 0.0453 - accuracy: 0.9862
313/313 [==============================] - 1s 4ms/step - loss: 0.0735 - accuracy: 0.9772

而fashion_mnist是一个衣物类的数据集,包含了很多的28*28的衣物类图片,相对也有标签。所以,要用fashion_mnist数据集,其实只要将上面代码中mnist改为fashion_mnist就可以了。

得到结果:

(28, 28)

Epoch 5/5
1875/1875 [==============================] - 7s 4ms/step - loss: 0.2930 - accuracy: 0.8907
313/313 [==============================] - 1s 3ms/step - loss: 0.3652 - accuracy: 0.8695

参考博客:

TensorFlow之tf.keras的基础分类_小小码农-CSDN博客_tensorflow tf.keras

PyTorch学习笔记——多分类交叉熵损失函数 - 知乎 (zhihu.com)

(11 条消息) keras中的三种分类交叉熵分别是什么意思? - 知乎 (zhihu.com)

posted @ 2021-08-06 17:10  Lcy的瞎bb  阅读(229)  评论(0编辑  收藏  举报