| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 深度学习之pytorch实战计算机视觉 -> 正文阅读 |
|
[人工智能]深度学习之pytorch实战计算机视觉 |
本文旨在对深度学习重要概念进行整理和对pytorch算法进行整理 目录
损失和梯度损失值就是预测值与真实之间的误差,梯度就是多元函数的各个参数求导并以向量的形式出现。 激活函数为什么sigmoid 激活函数出现梯度消失sigmoid的导数的取值区间是0-0.25,在后向传播每经过一个节点就要乘以sigmoid导数,梯度大小就变为原来的1/4,随着模型层数加深,梯度值就越来越小,甚至会消失。 tanh输出结果是以0为中心,解决了激活函数在模型优化过程中收敛速度慢的问题,取值为0-1,不够大,所以仍然会出现梯度消失的情况 Relu(Rectified Linear Unit,修正线性单元)目前使用率最高的激活函数,输出结果小于0激活函数输出为0,否则就是本身,收敛速度非常快,因为Relu输出不是零中心数据,可能默写神经元永远不会被激活,这些神经元对应的参数不能被更新。因为模型参数在初始化的时候被设置为全正或者全负;在反向传播的时候设置学习率过大,收敛较快导致。目前改进版本是Leaky-ReLU,R-ReLU CNN参考之前的文章 CNN中重要的组件就是Filter(卷积核),卷积核有三个元素,高度、宽度、深度,高度和宽度一般常用的是33和55,深度根据输入图像的通道数设置,如果是图像是3通道彩色的,就设置为3,如果输入图像是黑白的,就设置为1. 全连接层作用将输入图像在经过卷积层和池化层操作后提取的核心特征与全连接层定义的权重参数相乘,将输出的参数值输入到softmax激活函数中,激活函数输出的是各个类别的可能性。 pytorch在学习pytorch框架之前,可以先参考我的python学习笔记专栏和我之前的pytorch文章 python运算符一些简单的加减乘除这里就不列举,列举常用但是看到不知道是什么的 python中的类init():类的初始化方法,在创建实例的时候会调用此方法 多维数组常用的属性ndim:数组的维度个数:2行3列的数组维度数ndim是2 数组的运算min:最小值 随机数组seed:伪随机 matplotlib.pyplt线条颜色b 蓝色 标记参数点形状o 圆形 线条形状‘-’ 实线 Tensor生成torch.FloatTensor可以是一个维度值,也可以是一个列表 Tensor的运算torch.abs:输入tensor数据,输出为绝对值 自动梯度torch.autograd包:用这个包中的variable包对Tensor对象封装,然后自动链式求导 自定义传播函数可以构建一个继承torch.nn.Module的新类,完成对前向传播和后向传播的重写,使用forward作为前向传播的关键字,使用backward作为后向传播的关键字, 模型搭建和参数优化torch.nn中有很多实现神经网络具体功能的类,比如卷积层,池化层,全连接层,参数归一化,Dropout,激活函数, torch.sequential是torch.nn中的序列容器,可以搭建网络,1、直接嵌套2、使用orderdict字典,前者从0开始对模块进行排序,后者可以自定义模块名字 torch.nn.Linear用于定义模型的线性层,参数:输入特征数、输出特征数、是否使用偏置,默认是True torch.nn.ReLU:非线性激活torch.nn.MSELoss:L2使用均方误差对损失值进行计算,在定义类的时候不需要传入任何参数,在使用实例的时候需要传入两个维度一样的参数进行计算 torch.nn.L1Loss使用平均绝对误差计算损失值,在定义类的时候不需要传入任何参数,在使用实例的时候需要传入两个维度一样的参数进行计算 torch.nn.CrossEntropyLoss:计算交叉熵,在定义类的时候不需要传入任何参数,在使用实例的时候需要输入两个满足交叉熵计算条件的参数 torch.nn.Conv2d参数输入通道,输出通道,卷积核大小,步长,paddingde torch.nn.MaxPool2d池化窗口大小,步长,paddingde torch.nn.Dropout以一定随机概率将部分参数归零,因为是随机的,所以每轮进行丢弃的神经元也不同,最后训练出来的模型不会对某部分参数过度依赖,防止过拟合,随机概率默认值是0.5 全连接处理x.view(-1,1414128)进行扁平化处理,然后全连接层,如果不进行扁平化处理,全连接输出维度和输入维度不匹配;最后使用self.dense进行最后分类。 遍历模型参数models.parameters() 优化函数torch.optim里面有很多自动优化参数的类,如torch.optim.Adam里面可以传入被优化的参数models.parameters(),学习率初始值,并且可以根据梯度更新对学习率进行自动调节。 torch和torchvision上面介绍使用torch.nn中线性层和激活函数配合torch.optim完成神经网络搭建和优化,并使用torch.auto完成自动梯度功能, torchvision.transformstorchvision.transforms.Compose对各种变换进行组合,传入的参数是一个列表,比如**transforms.ToTensor(),transforms.Normalize()**对数据标准化,需要使用均值和标准差进行数据标准化,经过标准化之后,默认是数据是均值为0,标准差为1的正态分布; 数据装载和预览batch_size:确认每个包大小,shuffle:是否打乱 预览
迁移学习迁移VGG16下载模型 多模型融合设置每个模型不同权重,对结果预测结果进行加权平均。然后再和真实值进行比较 RNNRNN也可以实现分类,在特征提取上没有CNN强大,RNN可以随意控制输入和输出的数量, 自动编码器核心特征提取编码和数据重构解码
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 21:38:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |