基本图像分类tensorflow

# 载入tensorflow,keras,numpy,matplotlib
import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt

# 从 TensorFlow 中导入和加载 Fashion MNIST 数据集
fashion_mnist = keras.datasets.fashion_mnist
#加载数据集会返回四个 NumPy 数组
(train_images,train_labels),(test_images,test_labels)=fashion_mnist.load_data()
#每个图像都会被映射到一个标签
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
#查看训练集中第一个图像
plt.figure()#图像的图层
plt.imshow(train_images[0])#要显示的图形
plt.colorbar()#右侧的颜色条
plt.grid(False)#是否显示网格
plt.show()#将图像显示出来
#预处理数据
#像素值处于 0 到 255 之间,将这些值缩小至 0 到 1 之间,然后将其馈送到神经网络模型
train_images=train_images/255.0
test_images=test_images/255.0
#为了验证数据的格式是否正确,以及是否已准备好构建和训练网络,我们先显示训练集中的前 25 个图像,并在每个图像下方显示类名称。
plt.figure(figsize=(10,10))#设置窗口的尺寸
for i in range(25):
    plt.subplot(5,5,i+1)#一个Figure对象可以包含多个子图(Axes),可以使用subplot()快速绘制
    #设置坐标轴
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(train_images[i], cmap=plt.cm.binary)
    plt.xlabel(class_names[train_labels[i]])
plt.show()
#构建模型,构建神经网络需要先配置模型的层,然后再编译模型。
model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10)
])
#在模型的编译过程中添加优化器,损失函数,指标
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])
#要开始训练,调用 model.fit 方法
model.fit(train_images,train_labels,epochs=10)
#评估准确率,比较模型在测试数据集上的表现
test_loss, test_acc = model.evaluate(test_images,  test_labels, verbose=2)
print('\nTest accuracy:', test_acc)
#进行预测
probability_model = tf.keras.Sequential([model,tf.keras.layers.Softmax()])#模型具有线性输出,即 logits。可以附加一个 softmax 层,将 logits 转换成更容易理解的概率
predictions = probability_model.predict(test_images)
predictions[0]
#预测结果是一个包含 10 个数字的数组。它们代表模型对 10 种不同服装中每种服装的“置信度”。哪个标签的置信度值最大就对应是这个分类
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值