Softmax 多分类的代码实现 | 学习笔记

简介: 快速学习 Softmax 多分类的代码实现

开发者学堂课程【Tensorflow 2.0入门与实战Softmax 多分类的代码实现】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/664/detail/11106


Softmax多分类的代码实现


内容介绍

一.数据集的形状

二.如何把数据归一化

三.建立模型分类


一.数据集的形状

train_image 的形状,60000张28*28的图片。train_lable 的形状有60000个标签 。

test_image test_label 的形状分别是10000张28*28的图片和10000个标签。

In [5]: train_image. shape

Out[5]:(60000,28,28)

In [6]: train lable.shape

Out[6]:(60000,)

In [7]: test_image.shape, test_label. shape

Out[7]:((10000,28,28),(10000,))

使用 plt.imshow 切出第一张图片

image.png

Image[0]的取值,大部分都是0

image.png

使用 np.max 取最大值为255,所以图片的取值范围在0到255之间。

In [13]: np.max(train_image[0]

Out[13]: 255

trainclable 的取值

In [16]: train_lable

Out[16]: array([9,0,0,..., 3,0,5],dtype=uint8)


二.如何把数据归一化

train_image 取值是从0到255所以将数据除以255,取值范围变为从0到1。用 test_image 除以255。

In [17]: train_image=trainimage/255

test_image=test_image/255

In [18]: train_image.shape

Out[18]:(60000,28,28)

 

三.建立模型分类

1.建立 Sequential 模型

2.添加层

第一层需要将二维的数据变为一维的所以需要添加 Flatten 层,

input_shape =28,28

添加 Dense 层输出128个隐藏单元。使用 relu 进行激活。

注意:

Dense 层隐藏单元不能太少,会舍弃很多有用的信息,太大会过拟合。

输出层要输出10个概率值,使用 softmax 激活。softmax 的作用是将10个输出变成概率分布,10个概率分布和为1。

In [19]: model =tf.keras.Sequential()

model.add(tf.keras.layers.Flatten(input_shape=(28,28))#28*28 model.add(tf.keraslavers.Dense(128,activation=’relu’) )

model.add(tf.keras.layers.Dense(10,activation=’softmax’))

3.编译模型

使用当使用数字编码的时候损失函数使用

sparse_categorical_crossentropy

In [20]: model.compile(optimizer='adam',

loss=' sparse_categorical_crossentropy’

metrics=['acc']

4. train训练

In [*]: model.fit(train_image,train_lable,epochs=5 )

Epoch 1/5

60000/60000[==============================]-2s39us/sample-loss:0.5014I-acc:0.8231

Epoch 2/5

60000/60000[==============================]-2s36us/sample-loss:0.3730-acc:0.8665

Epoch 3/5

60000/60000[==============================]-2s36us/sample-loss:0.3371-acc:0.8

5.test评价

在 test 上进行评价,达到87%的正确率,loss 为0.34

In[23]: model.evaluate(test_image, test_label)

10000/10000[==============================]-0s26us/sample-loss: 0.3422_ acc:0.8763

Out[23]: [0 34224417579174043,0.8763]

相关文章
|
机器学习/深度学习 算法 Python
|
8月前
|
机器学习/深度学习 算法 PyTorch
实战图像softmax分类模型
本文是学习softmax图像分类模型的总结,主要分享softmax图像分类模型的技术原理,以及用代码实现验证,供大家参考。
308 3
回归预测 | MATLAB实现基于QPSO-GRU、PSO-GRU、GRU多变量回归预测
回归预测 | MATLAB实现基于QPSO-GRU、PSO-GRU、GRU多变量回归预测
|
机器学习/深度学习 传感器 算法
回归预测 | MATLAB实现CNN-BiLSTM-Attention多输入单输出回归预测
回归预测 | MATLAB实现CNN-BiLSTM-Attention多输入单输出回归预测
|
机器学习/深度学习 传感器 算法
回归预测 | MATLAB实现CNN-GRU-Attention多输入单输出回归预测
回归预测 | MATLAB实现CNN-GRU-Attention多输入单输出回归预测
|
机器学习/深度学习 传感器 算法
回归预测 | MATLAB实现CNN-LSTM-Attention多输入单输出回归预测
回归预测 | MATLAB实现CNN-LSTM-Attention多输入单输出回归预测
|
机器学习/深度学习 传感器 算法
【 NARX NN回归预测】基于NARX NN实现数据自回归多变量预测附matlab代码
【 NARX NN回归预测】基于NARX NN实现数据自回归多变量预测附matlab代码
|
机器学习/深度学习 人工智能 PyTorch
【Pytorch神经网络理论篇】 08 Softmax函数(处理分类问题)
oftmax函数本质也为激活函数,主要用于多分类问题,且要求分类互斥,分类器最后的输出单元需要Softmax 函数进行数值处理。
331 0
反向传播+代码实现
反向传播+代码实现
118 0
|
机器学习/深度学习 存储 人工智能
【Pytorch神经网络基础理论篇】 08 Softmax 回归 + 损失函数 + 图片分类数据集
【Pytorch神经网络基础理论篇】 08 Softmax 回归 + 损失函数 + 图片分类数据集
268 0