| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 神经网络分类任务 -> 正文阅读 |
|
[人工智能]神经网络分类任务 |
神经网络分类任务1.传入数据数据大小x_train.shape=(x,y) x=数据集中样本个数 y=每个样本的横*纵**像素 若分类结果为n分类,每个像素点分类为1*n的概率矩阵 将数据转换为tensor模式
由上,数据分为训练集输入x_train,训练集输出y_train,验证集输入x_valid,验证集输出y_valid。可以看见,训练集大小为50000784,而测试集大小为10000×784。每784个像素点为一个单独的数据,即说明当前训练集有50000个数据,而验证集有10000个数据。 设置batch大小为bs=64,取得单个batch大小为64*784。 例如: 2.引入库functional库可以引入损失函数,激活函数等许多层和函数
例如调用损失函数:
3.创建model采用nn库构造函数:
nn模型只需要输入前向传播过程方式与激活函数,即会自动进行反向传播。 4.通过使用TensorDataset和DataLoader定义batch为了进行batch操作,首先要将数据转为tensor格式,再对data进行分批读取。
定义得到数据,从测试总矩阵train_ds中取出bs个数据给train_dl,valid_ds中取出bs*2个数据给valid_dl。
若定义当前batch大小为64,则valid_dl中数据个数为64 执行for循环操作,单步执行64个数据中的16个进行误差分析 5.定义训练器
在loss_batch中传入模型,损失函数,x的数据集,y的数据集,以及是否使用优化器。 在函数中进行损失率的计算,若使用优化器,则对参数进行优化 6.定义优化器
采用先前定义好的Mnist_NN模型,进行SGD优化。 梯度下降法是神经网络中更新参数常用的方法,根据损失进行反向传播(大致为求偏导过程),进行权重及偏移量的更新。 引入batch概念,将数据分批进行梯度下降,提高了拟合的真实性。 SGD为随机梯度下降法,该算法旨在优化神经网络中更新权重。即在样本容量中随机取n个样本进行梯度下降,这样的好处在于避免了批梯度下降法中出现平滑点导致参数无法进行进一步优化的问题,如下图(转载)。 但这样的方法运算时间较高,在此之后提出了一种MBGD的小批量梯度下降方法。关于batch与梯度下降,可参考博客: (56条消息) 神经网络训练中batch的作用(从更高角度理解)_做个好男人!的博客-CSDN博客_神经网络batch 7.验证及测试
8.网络训练
获取数据,获取模型及优化算法。 使用定义好的fit对网络进行训练以及测试。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 1:59:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |