如何使用 TensorFlow 和 Fashion MNIST 数据集,以便训练好的模型能够用于预测 Python 中的不同图像?


Tensorflow 是 Google 提供的一个机器学习框架。它是一个开源框架,与 Python 结合使用来实现算法、深度学习应用程序等等。它用于研究和生产目的。它具有优化技术,有助于快速执行复杂的数学运算。这是因为它使用了 NumPy 和多维数组。这些多维数组也称为“张量”。该框架支持使用深度神经网络。

可以使用以下代码行在 Windows 上安装“tensorflow”包:

pip install tensorflow

张量是 TensorFlow 中使用的一种数据结构。它有助于连接流图中的边。此流图称为“数据流图”。张量只不过是多维数组或列表。可以使用三个主要属性来识别它们:

- 它告诉张量的维度。可以理解为张量的阶数或已定义的张量中的维度数。

类型 - 它告诉张量元素关联的数据类型。它可以是一维、二维或 n 维张量。

形状 - 它是行数和列数的总和。

“Fashion MNIST”数据集包含各种服装的图像。它包含超过 70,000 件属于 10 个不同类别的服装的灰度图像。这些图像是低分辨率的(28 x 28 像素)。

我们使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助通过浏览器运行 Python 代码,无需任何配置,并且可以免费访问 GPU(图形处理单元)。Colaboratory 是建立在 Jupyter Notebook 之上的。

以下是代码片段:

示例

print("An image from the test data is taken")
img = test_images[26]
print("The dimensions of the image are ")
print(img.shape)
print("The image is added to batch where it is the only entity")
img = (np.expand_dims(img,0))
print("The dimensions of the image now ")
print(img.shape)

my_pred = probability_model.predict(img)
print("The prediction made is ")
print(my_pred)

plot_value_array(1, my_pred[0], test_labels)
_ = plt.xticks(range(10), class_names, rotation=45)
np.argmax(my_pred[0])

代码来源 -  https://tensorflowcn.cn/tutorials/keras/classification

输出

An image from the test data is taken
The dimensions of the image are
(28, 28)
The image is added to batch where it is the only entity
The dimensions of the image now
(1, 28, 28)
The prediction made is
[[8.0459216e-07 1.7074371e-09 2.6175227e-02 1.8855806e-07 1.7909618e-01
2.1126857e-06 7.9472500e-01 7.5104166e-11 4.7921480e-07 1.6657851e-10]]
6

解释

  • 测试图像的维度显示在控制台上。

  • “expand_dims” 经过优化,可以同时处理批次或示例集合。

  • 单个图像也作为列表的一部分添加。

  • predict 函数返回一个列表的列表,其中每个列表对应于批处理数据中的一个图像。

  • 提取并显示我们想要的图像的预测结果。

  • 使用“matplotlib”将其可视化为条形图。

更新于: 2021年1月20日

124 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始
广告