本文是延续到第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])])

引用

  1. https://www.tensorflow.org/
  2. https://www.kaggle.com

这篇文章最初发表在Knoldus博客上。

Comments are closed.