IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> TensorFlow实战之softmax多分类 -> 正文阅读

[人工智能]TensorFlow实战之softmax多分类


前言

Keras是TensorFlow2.X的一个实现库,很多模型基于Keras搭建


一、Keras的mnist数据集

mnist数据集是KerasAPI公开的数据集,是(28,28)的图像数据集

二、建立sequential顺序model

对于分类问题必须使用softmax作为输出层的激活函数;如果每一个实例的每个类都有一个目标概率,即使用one—hot编码,在loss的设置时使用categorical_crossentropy;而下面的代码是基于稀疏标签(每个类只有一个目标类索引),并且类间互斥,则设置loss="sparse_categorical_crossentropy"

import numpy as np
import tensorflow as tf
from tensorflow import keras
import pandas as pd
import matplotlib.pyplot as plt
print(tf.__version__)
print(keras.__version__)

# 加载数据集
fashion_mnist = keras.datasets.fashion_mnist
(X_train_full, y_train_full), (X_test, Y_test)=fashion_mnist.load_data()
# 查看训练集的形状和数据类型
print(X_train_full.shape, X_train_full.dtype)
# 比例缩放和像素强度降低到0-1,创建一个验证集
X_valid, X_train = X_train_full[:5000]/255.0, X_train_full[5000:]/255.0
Y_valid, Y_train = y_train_full[:5000], y_train_full[5000:]
# 设置类名列表
class_names=["T_shirt/top", "Trouser", "Pullover", "Dress", "Coat", "Sandal", "shirt","Sneaker"
             , "Bag", "Anlle boot"]
# 查看第一幅图
print(class_names[Y_train[0]])

# 搭建网络模型
model = tf.keras.models.Sequential()
model.add(keras.layers.Flatten(input_shape=[28, 28]))
model.add(keras.layers.Dense(300, activation="relu"))
model.add(keras.layers.Dense(100, activation="relu"))
model.add(keras.layers.Dense(10, activation="softmax"))# 输出十个概率分布,看属于哪一个
model.compile(loss="sparse_categorical_crossentropy", optimizer="sgd", metrics=["accuracy"])
history=model.fit(X_train, Y_train, epochs=5, validation_data=(X_valid,Y_valid))
#print(history)

# 绘制history曲线
pd.DataFrame(history.history).plot(figsize=(8,5))
plt.grid(True)
plt.gca().set_ylim(0,1)
plt.show()


# 在测试集上测试
print(model.evaluate(X_test, Y_test))
#仅使用测试集的前三个例子
X_new=X_test[:3]
Y_proba= model.predict(X_new)
print(Y_proba.round(2))
y_pre=model.predict(X_new)
print(y_pre)

2.绘图结果和测试结果

绘制准确率和验证集上的准确率
epoch=40的准确率
测试集的准确率和前三个例子的测试结果(输出的是10个类别的所属概率)
在这里插入图片描述

如果使用独热编码作为数据的输入,loss应该设置为如下参数,并且对于优化器的选择,可以选择Keras自带的优化器Adam,lr是学习速率,可以人工设置的超参数,但是如果不设置则默认为0,01。
在这里插入图片描述

三、网络容量和优化

在这里插入图片描述
增加层会比增加神经元更能提高网络拟合能力。
在这里插入图片描述
使用dropout解决过拟合,类似取平均的作用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再调节超参数。
构建网络的原则
在这里插入图片描述


总结

重新搭建TensorFlow的gpu环境,从Keras开始学习神经网络,欢迎指正。
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:17:53  更:2021-12-15 18:20:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 0:38:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码