开发者学堂课程【Tensorflow 2.0入门与实战:Softmax 多分类】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/664/detail/11105
Softmax多分类
内容介绍
一、softmax 分类
二、tf.keras 交叉熵
三、Fashion MNIST
一.softmax 分类
对数几率回归解决的是二分类的问题,对于多个选项的问题,我们可以使用softmax 函数。它是对数几率回归在N个可能不同的值上的推广。
神经网络的原始输出不是一个概率值,实质上只是输入的数值做了复杂的加权和与非线性处理之后的一个值而已,那么如何将这个输出变为概率分布?
这就是 Softmax 层的作用。
softmax 要求每个样本必须属于某个类别,且所有可能的样本均被覆盖。
softmax 个样本分量之和为1,当只有两个类别时,与对数几率回归完全相同。
二、tf.keras 交叉熵
在 tf.keras 里,对于多分类问题我们使用 categorical_crossentropy 和sparse_categorical_crossentropy 来计算 softmax 交叉熵。
softmax 输出的是概率值,使用交叉熵来计算两个概率分布之间的损失。
三、Fashion MNIST
Fashion MNIST 的作用是成为经典 MNIST 数据集的简易替换,MNIST 数据集包含手写数字(0、1、2等)的图像,这些图像的格式与本节课中使用的服饰图像的格式相同。
Fashion MNIST 比常规 MNIST 手写数据集更具挑战性。这两个数据集都相对较小,用于验证某个算法能否如期正常运行。它们都是测试和调试代码的良好起点。
如果第一次接触深度学习或做实验,推荐使用 Fashion MNIST 比较简单。
MNIST 手写数据集将作为作业。
Fashion MNIST 数据集包含70000张灰度图像,涵盖10个类别。
我们将使用60000张图像训练网络,并使用10000张图像评估经过学习的网络分类图像的准确率。划分了训练数据和测试数据,这种方法比较客观。
import tensorflow as tf
print(’Tensorflow Version:{}’.format(tf._version_))
Tensorflow Version:2.0.0-alpha()
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
(train_image,train_lable),(test_image,test_lable)=tf.keras.datasets.fashion_ mnist.lo
可以从 TensorFlow 直接访问 FashionMNIST,只需导入和加载数据即可。
用代码如何取加载 FashionMNIST 数据集
引入 TensorFlow 使用 tf.keras.datasets 加载 FashionMNIST 。
加载以后第一部分为 train_image 和 train_lable,第二部分为 test_image 和 test_lable。
如果是第一次运行,会在国外的网站上下载 FashionMNIST 的数据集,速度会很慢。