[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nTeMlurx-1667143395418)(https://csdn-pic-1301850093.cos.ap-guangzhou.myqcloud.com/csdn-pic/公众号横幅-1.png)]
以下内容是在学习过程中的一些笔记,难免会有错误和纰漏的地方。如果造成任何困扰,很抱歉。
此Tensorflow官方案例是机器学习中的Hello World,将训练一个神经网络模型,对运动鞋和衬衫等服装图像进行分类,通过Tensorflow及KerasAPI对图像分类识别有一个基本认知。
数据准备及处理
首先导入相关的类库和数据集
# TensorFlow and tf.keras
import tensorflow as tf
from tensorflow import keras
# Helper libraries
import numpy as np
import matplotlib.pyplot as plt
# 数据集导入
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
该数据集包含 10 个类别的 70,000 个灰度图像。这些图像以低分辨率(28x28 像素)展示了单件衣物
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0AbseJeU-1667143395419)(https://csdn-pic-1301850093.cos.ap-guangzhou.myqcloud.com/csdn-pic/服装灰度图像-1.png)]
加载数据集会返回四个 NumPy 数组:
train_images
和train_labels
数组是训练集,即模型用于学习的数据;- 测试集、
test_images
和test_labels
数组会被用来对模型进行测试;
我们针对这些标签进行一个简单的分类
# 将图像的标签分类
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
标签 | 类 |
---|---|
0 | T恤/上衣 |
1 | 裤子 |
2 | 套头衫 |
3 | 连衣裙 |
4 | 外套 |
5 | 凉鞋 |
6 | 衬衫 |
7 | 运动鞋 |
8 | 包 |
9 | 短靴 |
# 浏览数据集
print(train_images.shape)
print(len(train_labels))
print(train_labels)
预处理数据 此时展示的是图像原始像素大小
# 预处理数据 此时展示的是图像原始像素大小
plt.figure()
plt.imshow(train_images[0])
plt.colorbar()
plt.grid(False)
plt.show()
需要将这些值缩小至0到1之间,然后将其馈送到神经网络模型
# 将这些值缩小至0到1之间 然后将其馈送到神经网络模型
train_images = train_images / 255.0
test_images = test_images / 255.0
# 验证数据的格式是否正确
plt.figure(figsize=(10, 10))
for i in range(25):
plt.subplot(5, 5, i + 1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow(train_images[i], cmap=plt.cm.binary)
plt.xlabel(class_names[train_labels