如何使用Fashion MNIST数据集训练Tensorflow模型,并在Python中使用该模型对不同的图像进行预测?
Tensorflow是由Google提供的机器学习框架。它是一个开源框架,与Python结合使用实现算法、深度学习应用等。它既用于研究,也用于生产。它具有优化技术,有助于快速执行复杂的数学运算。这是因为它使用NumPy和多维数组。这些多维数组也称为“张量”。该框架支持使用深度神经网络进行工作。
可以使用以下代码在Windows上安装“tensorflow”包-
pip install tensorflow
张量是TensorFlow中使用的数据结构。它有助于连接流程图中的边缘。这个流程图被称为“数据流图”。张量就是多维数组或列表。它们可以使用三个主要属性进行识别:
秩(Rank) - 它告诉张量的维度。它可以理解为张量的秩或定义的张量中的维数的数量。
类型(Type) - 它告诉与张量元素相关联的数据类型。它可以是一维、二维或n维张量。
形状(Shape) - 它是行数和列数之和。
“Fashion MNIST”数据集包含不同种类的服装图像。它包含属于10个不同类别的70,000多件衣服的灰度图像。这些图像的分辨率较低(28 x 28像素)。
我们使用Google Colaboratory来运行下面的代码。Google Colab或Colaboratory可以在浏览器上运行Python代码,并需要零配置和免费GPU(图形处理单元)访问。Colaboratory是在Jupyter Notebook上构建的。
以下是代码片段-
更多Python相关文章,请阅读:Python 教程
示例
print("从测试数据中取出一张图像")
img = test_images[26]
print("图像的维度是")
print(img.shape)
print("将图像添加到batch中,它是唯一的实体")
img = (np.expand_dims(img,0))
print("现在图像的维度变为")
print(img.shape)
my_pred = probability_model.predict(img)
print("做出的预测是")
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://www.tensorflow.org/tutorials/keras/classification
输出
从测试数据中取出一张图像
图像的维度是
(28, 28)
将图像添加到batch中,它是唯一的实体
现在图像的维度变为
(1, 28, 28)
做出的预测是
[[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”将其可视化为条形图。