二、softmax多分类学习 基于fashion_mnist数据集

多分类学习 fashion_mnist数据集

import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
(train_image, train_label), (test_image, test_label) = tf.keras.datasets.fashion_mnist.load_data()
# 将数据集分为训练集和测试集。训练集包含训练图像和相应的标签,测试集包含测试图像和相应的标签。
train_image.shape
#训练图像共有 60000 个样本,每个样本都是 28x28 的灰度图像。
# 对训练图像和测试图像进行归一化处理,将像素值缩放到 0 到 1 之间。
# 归一化输入数据,可以消除尺度差异,加速模型收敛,并避免数值不稳定性,从而提高神经网络模型的训练效果和性能。
train_image = train_image/255
test_image = test_image/255
# 创建了一个序列模型 model。序列模型是一个线性的层堆叠模型,每个层通过 model.add() 方法添加。
# 首先,使用 Flatten 层将 28x28 的图像展平为 784 个像素的一维向量。这样做是为了将图像数据输入到后续的全连接层中。
# 然后,添加一个具有 128 个神经元和 ReLU 激活函数的全连接层。ReLU 函数可以引入非线性特征,并增加模型的表达能力。
# 最后,添加一个具有 10 个神经元和 softmax 激活函数的全连接层。这是一个多类别分类问题,softmax 函数将输出转换为表示不同类别概率的向量。


# Flatten 层是用于数据形状变换的输入层,将多维数据转换为一维向量,不引入参数和权重。
# Dense 层是全连接层,每个神经元都与上一层的所有神经元相连接,引入参数和权重进行特征学习和非线性映射。

model =tf.keras.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(28,28)))  #28*28的向量
model.add(tf.keras.layers.Dense(128,activation='relu'))
model.add(tf.keras.layers.Dense(10,activation='softmax'))

#指定学习速率版
model.compile(optimizer=tf.keras.optimizers.Adam(lr=0.001),
              loss='sparse_categorical_crossentropy',
                metrics=['acc']
             )
# 常见的优化器包括随机梯度下降(SGD)、Adam、RMSprop 等
#Sparse Categorical Cross-Entropy 首先将标签转换为 one-hot 编码的形式,然后计算模型输出概率分布与转换后的标签之间的交叉熵。
#Sparse Categorical Cross-Entropy 具有与 Categorical Cross-Entropy 相同的效果,但不需要显式进行 one-hot 编码。
# 评估指标包括准确率(accuracy)、精确度(precision)、召回率(recall)、F1 值等
model.fit(train_image,train_label,epochs=3,verbose=2)
model.evaluate(test_image,test_label)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值