本文是延续到第1部分,紧张深度学习。请务必通过它来更好地了解这个案例研究。
Keras 是一种以 Python 编写的高级神经网络 API,能够在天源、CNTK 或 Theano 之上运行。它开发的重点是实现快速实验。在本文中,我们将介绍一个小案例研究的时尚时尚。
时尚-MNIST 是 Zalando 的文章图像数据集,由 60,000 个示例和一套包含 10,000 个示例的测试集组成。每个示例都是一个 28×28 灰度图像,与 10 个类的标签相关联。Zalando 打算将时尚-MNIST 作为原始 MNIST 数据集的直接替代,用于对机器学习算法进行基准测试。它共享相同的图像大小和结构和训练和测试拆分。
标签
每个训练和测试示例都分配给以下标签之一:
- 0 T恤/上衣
- 1 裤
- 2 拉拔
- 3 礼服
- 4 外套
- 5 凉鞋
- 6 衬衫
- 7 运动鞋
- 8 袋
- 9 脚踝启动
1) 首次装载所需软件包
import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt
2) 加载数据集
…将数据集下载到您的系统
fashon_mnist = keras.datasets.fashion_mnist
(train_images,train_labeks),(test_images,test_labels) = fashon_mnist.load_data()
3) 前几行的可视化
让我们为图像绘制一些示例。我们将标签添加到具有相应时尚项目类别的列车组图像中。
for i in range(10):
plt.figure()
plt.imshow(train_images[i])
plt.colorbar()
plt.grid(False)
plt.show()
train_images = test_images/255.0
test_images = test_images/255.0
plt.figure(figsize=(10,10))
class_name = ['T-shirt/top','Trouser','Pullovers','Dress','Coat','Sandals','Shirt','Sneaker','Bag','Ankle boot']
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.RdBu)
plt.xlabel(class_name[train_labeks[i]])
plt.show()
4) 模型创建
我们从准备模型开始。我们将使用顺序模型。顺序模型是线性图层堆栈。可以先初始化它,然后我们使用添加方法添加图层,也可以在 init 阶段添加所有图层。添加的图层如下所示:密集。 此层是常规完全连接的 NN 层。它不带参数:单位:。这是一个正整数,其含义是:输出空间的维数;在这种情况下是128;激活+激活功能:relu;。
密集.这是最后一层(完全连接)。它与参数一起使用:单位:类数(在我们的例子中为10);激活:softmax;对于这最后一层,它使用软最大值激活(多类分类的标准)单位。这是一个正整数,其含义是:输出空间的维数;在这种情况下是128;激活+激活功能:relu;
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)
]
)
5) 编译模型
然后,我们编译模型,指定以下参数:
- 损失
- 优化
- 指标
model
拟合(火车_图像,测试标签)
7) 测试预测精度
我们计算测试损耗和准确性。
test_loss , test_acc = model.evaluate(test_images,test_labels)
#Test accuracy is around 0.81
8) 预测
现在,我们可以使用经过训练的模型对测试数据集模型进行预测/分类。
prediction = model.predict(test_images)
for i in range(10):
print("expected -",class_name[test_labels[i]])
print("predicted-" ,class_name[np.argmax(prediction[i])])
引用
这篇文章最初发表在Knoldus博客上。