机器学习笔记(二十)——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