机器学习(TensorFlow)---Fashion MNIST数据集使用范例(计算机视觉)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习(TensorFlow)---Fashion MNIST数据集使用范例(计算机视觉)相关的知识,希望对你有一定的参考价值。

Fashion MNIST数据集


共70,000张图片

共10个类别

每张图片有28x28像素

完整代码: ​​https://github.com/wangyuhubugui/-Machine_learning/blob/main/Fashion_minist.ipynb​


加载数据Fashion Mnist 数据集

输入:

# =========加载fashion_mist数据集===================
from tensorflow import keras
fashion_mist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images,test_labels) = fashion_mist.load_data()

运行结果就是这样

机器学习(TensorFlow)---Fashion

查看数据及内容

输入:

# 下面 查看一下数据集里面的东西
print(train_images.shape) # 查看图片的维度
# 添加下方代码查看 数据集里面的图片
import matplotlib.pyplot as plt
plt.imshow(train_images[0])

结果如下:

机器学习(TensorFlow)---Fashion


构造模型

代码如下:

# ===========构造神经网络模型========================
model = keras.Sequential([
# 模型构造的很简单, 一共三层, 输入层, 中间层, 输出层
keras.layers.Flatten(input_shape = (28,28)),
keras.layers.Dense(128,activation=tf.nn.relu),
keras.layers.Dense(10,activation=tf.nn.softmax)

])


# 使用 model.summary 来产看模型的样子
model.summary()


训练模型

输入:

# =============训练模型====================
train_images = train_images/255 # 作 normalization 处理, 是图片在 0~1 之间
model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=[accuracy])
model.fit(train_images,train_labels,epochs=5)
model.evaluate(test_images,test_labels)


# 因为此处的标签为整数, 所以可以用 sparse_categorical_crossentropy
# 如果 形如[0,0,0,0,1] , 也就是one hot 类型的, 就用 category_crossentropy
# 使用 normalization 或者叫作 scaliing 来让 图片的维度 在 0 ~ 1 之间, 训练的效果会更好

效果:

机器学习(TensorFlow)---Fashion


训练单图片

如果不想要训练真个数据集, 而是想要训练单张图片,可以用 model.predict

例如:

# ==============训练单张图片===================
import numpy as np

# 下面就会出现 , 图片对应元组的最大值, 机器以后会通过这些值来进行判断
print(model.predict(np.expand_dims(test_images[0]/255, axis=0)))

评估模型

# =============评估模型=========================
test_images = test_images/255 # 用 test_image 来评估模型, 因为 train_images 用了 255 , 所以此处也用255
model.evaluate(test_images,test_labels)


自动终止训练(防止过拟合)

class myCallback(tf.keras.callbacks.Callback):
def on_epoch_end(self,epoch,logs=):
if(logs.get(loss)<0.4): # 获取loss的值 , 当loss < 0.4 的时候
print("\\n Loss is low to scancelling training") # 打印
self.model.stop_training = True # 模型终止训练

callbacks = myCallback()

# 下面就是正常的 定义, 构造,训练, 评估模型的代码
# 在 使用model.fit 的时候, 使用参数, callback=[callbacks]

结果:

机器学习(TensorFlow)---Fashion


完整代码

上方内容是为了解读,  完整代码已放到github 上啦(持续更新, 欢迎星标)

​https://github.com/wangyuhubugui/-Machine_learning/blob/main/Fashion_minist.ipynb​

以上就是 学习的整个过程啦!!!


以上是关于机器学习(TensorFlow)---Fashion MNIST数据集使用范例(计算机视觉)的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow机器学习:如何正确的掌握Google深度学习框架TensorFlow(第二代分布式机器学习系统)?

基于Docker的TensorFlow机器学习框架搭建和实例源码解读

机器学习-Tensorflow之Tensor和Dataset学习

机器学习TensorFlow/PyTorch/Sklearn实现的五十种机器学习模型

「第61期」-机器学习-01-TensorFlow机器学习框架

tensorflow机器学习模型的跨平台上线