Python 深度学习

这篇具有很好参考价值的文章主要介绍了Python 深度学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 、深度学习概览

1、工具篇

推荐10个好用到爆的Jupyter Notebook插件,让你效率飞起(先安装python,再安装pip)

2、流程介绍

请点击---->深度学习计算机视觉学习流程
Python 深度学习
Python 深度学习

请点击–> 深度学习模型训练全流程!
请点击–> 深度学习一般工作流程:
step 1、定义问题,收集数据集。
step 2、定义模型预测性能指标
step 3、确定模型评估方式
step 4、数据预处理
step 5、搭建模型
1、确定激活函数、损失函数
Python 深度学习
2、从简单结构开始逐步扩大模型规模
3、考虑正则化和dropout
step 6、交叉验证
step 7、测试集验证
注意:测试集性能和验证集性能相差较大,考虑采用更复杂的验证方法,如乱序重复K折交叉验证

3、基础知识(常用操作)

1、数据结构类型

请点击—> Tensor 常用操作
Pytorch基本变量类型FloatTensor与Variable

torch成员函数 函数作用解释
torch.where(condition,a,b) torch.where()函数的作用是按照一定的规则合并两个tensor类型。输入参数condition:条件限制,如果满足条件,则选择a,否则选择b作为输出。注意:a和b是tensor.
torch.zeros(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) 返回一个形状为为size,类型为torch.dtype,里面的每一个值都是0的tensor.
torch.full(size, fill_value, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) 返回创建size大小的维度,里面元素全部填充为fill_value.
torch.ones(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) 返回创建size大小的维度,里面元素全部填充为1.

4、常见名词概念

SOTA

Sota实际上就是State of the arts 的缩写,指的是在某一个领域做的Performance最好的model,一般就是指在一些benchmark的数据集上跑分非常高的那些模型。
SOTA model:并不是特指某个具体的模型,而是指在该项研究任务中,目前最好/最先进的模型。
SOTA result:指的是在该项研究任务中,目前最好的模型的结果/性能/表现。

Benchmark、Baseline

Benchmark和baseline都是指最基础的比较对象。你论文的motivation是想超越现有的baseline/benchmark,你的实验数据都需要以baseline/benckmark为基准来判断是否有所提高。唯一的区别就是baseline讲究一套方法,而benchmark更偏向于一个目前最高的指标,比如precision,recall等等可量化的指标。举个例子,NLP任务中BERT是目前的SOTA,你有idea可以超过BERT。那在论文中的实验部分你的方法需要比较的baseline就是BERT,而需要比较的benchmark就是BERT具体的各项指标。

迁移学习

迁移学习通俗来讲,就是运用已有的知识来学习新的知识,核心是找到已有知识和新知识之间的相似性,用成语来说就是举一反三。

泛化(Generalization)

模型的泛化能力通俗易懂的说就是模型在测试集(其中的数据模型以前没有见过)中的表现,也就是模型举一反三的能力

二、深度学习Pytorch

常用两个功能函数:dir() ; help()。
【目录】【中文】【deplearning.ai】【吴恩达课后作业目录】

Python深度学习基于PyTorch:第1章 NumPy基础
Python深度学习基于PyTorch:第2章 Pytorch基础
Python深度学习基于PyTorch:第3章 Pytorch神经网络工具箱
Python深度学习基于PyTorch:第4章 Pytorch数据处理工具箱

1、神经网络

1.1 如何构建神经网络

step 1:构建网络层:一般采用torch.nn.Sequential()来构建;
step 2:前向传播:定义forward函数。forward函数的任务需要把输入层、网络层、输出层链接起来,实现信息的前向传导。在forward函数中,有些层来自nn.Module,也可以使用nn.functional定义。来自nn.Module的需要实例化,而使用nn.functional定义的可以直接使用。
step 3:反向传播:在反向传播过程中,优化器是一个重要角色。pytorch常用的优化方法都封装在torch.optim里面。最常用的优化算法就是梯度下降法及其各种变种。所有的优化方法都是继承了基类optim.Optimizer。

优化方法 优化器
随机梯度下降法 torch.optim.SGD()
含有动量的 随机梯度下降法 torch.optim.SGD()
Per-parameter adaptive learning rate methods(逐参数适应学习率方法) torch.optim.RMSprop()
Per-parameter adaptive learning rate methods(逐参数适应学习率方法) torch.optim.Adam()
torch.optim.Adadelta()
torch.optim.Adagrad()
以上优化器

nn.CrossEntropyLoss:

step 4:训练模型:缺省情况下,梯度是累加的,需要手工把梯度初始化或清零,调用optimizer.zero_grad()即可。如果希望用GPU训练,需要把模型、训练数据、测试数据发送到GPU上,即调用.to(device)。如果需要多GPU进行处理,可使模型或相关数据引用nn.DataParallel。
step 5:

1.2 核心组件

(1)层:神经网络的基本结构,将输入张量转换为输出张量。
卷积层:
全连接层:
Dropout层:
池化层:
隐含层:
(2)模型:层构成的网络。
(3)损失函数:参数学习的目标函数,通过最小化损失函数来学习各种参数。
(4)优化器:如何使损失函数最小,这就涉及优化器。常用的是4种。

2、数据处理工具

Python 深度学习一边用torch.utils.data.Dataset处理同一个目录下的数据。如果数据在不同目录下,不同目录代表不同类别(这种情况比较普遍),使用data.Dataset来处理就不很方便。不过,可以使用Pytorch另一种可视化数据处理工具(即torchvision)就非常方便,不但可以自动获取标签,还提供很多数据预处理、数据增强等转换函数。

2.1 torchvision(可视化处理工具)

torchvision是pytorch的一个图形库,它服务于PyTorch深度学习框架的,主要用来构建计算机视觉模型。torchvision有4个功能模块:model、datasets、transforms和utils。

2.1.1、torchvision.transforms

torchvision.transforms是pytorch中的图像预处理包。例如裁剪、旋转等。
一般用Compose把多个步骤整合到一起,transforms.Compose。
数据归一化处理transforms.Normalize。

2.1.2、torchvision.datasets

另说明: torch.utils.data包括Dataset(只负责数据的抽取,不能进行批处理)和DataLoader(不光可以批处理还能shuffle和并行加速)。
提供常用的数据集加载,设计上都是继承自torch.utils.data.Dataset。
torchvision学习之torchvision.datasets。 一些加载数据的函数及常用的数据集接口。
torchvision.datasets中包含了以下数据集:
(1)MNIST
(2)COCO(用于图像标注和目标检测)(Captioning and Detection)
(3)LSUN Classification
(4)ImageFolder
(5)Imagenet-12
(6)CIFAR10 and CIFAR100
(7)STL10

2.1.3、torchvision.models

PyTorch源码解读之torchvision.models
torchvision.models这个包中包含alexnet、densenet、inception、resnet、squeezenet、vgg等常用的网络结构,并且提供了预训练模型,可以通过简单调用来读取网络结构和预训练模型。

2.1.4、torchvision.utils

2.2 torch.utils.data

它包括以下4个类:
(1)Dataset:是一个抽象类,其它数据集需要继承这个类,并且覆写其中的两个方法( _ getitem 、_ len __)。
(2)DataLoader:定义一个新的迭代器,实现批量(batch)读取,打乱数据(shuffle)并提供并行加速等功能。
(3)random_split:把数据集随机拆分为给定长度的非重叠新数据集。
*(4)sampler:多种采样函数。

3 、神经网络工具箱nn

3.1 nn.Module模块

nn.Module是nn核心数据结构,它可以是神经网络的某个层(Layer),也可以是包含多层的神经网络。在实际应用中,最常见的做法是继承nn.Module,生成自己的网络/层。

3.2 nn.functional模块

两者区别: 具有学习参数的(例如,conv2d, linear, batch_norm)采用nn.Xxx方式。没有学习参数的(例如,maxpool、loss func、activation func)等根据个人选择使用nn.functional.xxx或者nn.Xxx方式。

4 、优化器

代码示例:

import torch.optim as optim
lr = 0.01
momentum = 0.5
optimizer = optim.SGD(model.parameters(), lr=lr, momentum=momentum)

4.1 动态修改学习率参数

修改参数的方式可通过修改参数optimizer.params_groups或新建optimizer。对于使用动量的优化器(momentum参数的sgd)可能会造成收敛中的震荡,所以建议采用修改参数optimizer.params_groups。

torch.unsqueeze(input, dim, out=None)  # 解压缩(升维)
torch.squeeze(input, dim = None, out = None) # 压缩(降维)
#####
torch.linspace(start, end, steps=100, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
# 函数的作用是,返回一个一维的tensor(张量),这个张量包含了从start到end,分成steps个线段得到的向量。

5 、可视化工具(tensorboardX)

tensorboardX功能很强大,支持scalar、image、figure、histogram、audio、text、graph、onnx_graph、embedding、pr_curve and videosummaries等可视化方式。

6 、机器学习基础

Python 深度学习

6.1 机器学习一般流程

明确目标收集数据(收集的数据尽量实现自动化、程序化)→输入数据数据探索与预处理(一般包括数据清理、数据转换、规范数据、特征选择等)→训练及测试算法或建模(不同方法来训练进而选取最优)→评估及优化模型(留出法、K折交叉验证、重复的K折交叉验证,若出现过拟合,尤其是回归类的问题,可用正则化方法来降低模型的泛化误差)

如何解决过拟合问题呢? 正则化是指在机器学习中,很多被显式地用来减少测试误差的策略。正则化旨在减少泛化误差而不是训练误差。正则化不仅可以有效降低高方差,还有利于降低偏差。
1、权重正则化
2、Dropout正则化
3、批量正则化
4、权重初始化

6.2 相关知识介绍

代价函数(cost function): 衡量模型预测出来的值 h(θ) 与真实值 y 之间差异的函数叫做代价函数J(θ)。
Python 深度学习

7 、视觉处理基础

7.1 卷积神经网络(CNN)

卷积神经网络是一种前馈神经网络。卷积神经网络由一个或多个卷积层和顶端的全连接层(对应经典的神经网络)组成,同时也包括关联权重和池化层(Pooling Layer)等。

7.2 卷积层

卷积层是卷积神经网络的核心层,而卷积又是卷积层的核心。卷积核(kernel)又称权重过滤器,简称为过滤器(filter)。常见卷积核有Horizontalfilter(水平边缘检测)、Verticalfilter(垂直边缘检测)、Sobelfilter(增强图像中心区域权重)。
1、卷积核
2、步幅(strides)
3、填充(padding)
4、激活函数
卷积神经网络与标准的神经网络类似,为保证其非线性,也需要使用激活函数,即在卷积运算后,把输出值另加偏移量,输入到激活函数,然后作为下一层的输入。
常用的激活函数有:nn.Sigmoidnn.ReLUnn.LeakyReLUnn.Tanh等。
ReLU是将所有的负值都设为零,相反,Leaky ReLU是给所有负值赋予一个非零斜率。
5、卷积函数
卷积函数是构建神经网络的重要支架,通常PyTorch的卷积运算是通过nn.Conv2d来完成的。
6、转置卷积(Transposed Convolution)在一些文献中也称为反卷积(Deconvolution)或部分跨越卷积(Fractionally-Strided)。转置卷积在生成式对抗网络(GAN)中使用很普遍。

7.3 池化层

池化(Pooling)又称下采样,通过卷积层获得图像的特征后,理论上可以直接使用这些特征训练分类器(如Softmax)。常用池化方法有3种:(1)最大池化;(2)均值池化;(3)全局最大池化。
池化的作用体现在降采样:保留显著特征、降低特征维度,增大感受野。
1、局部池化
2、全局池化
全局平均池化(Global Average Pooling,GAP)。GAP的优势在于:各个类别与Feature Map之间的联系更加直观(相比与全连接层的黑箱来说),Feature Map被转化为分类概率也更加容易,因为在GAP中没有参数需要调,所以避免了过拟合问题。GAP汇总了空间信息,因此对输入的空间转换鲁棒性更强。所以目前卷积网络中最后几个全连接层,大都用GAP替换。PyTorch虽然没有对应名称的池化层,但可以使用PyTorch中的自适应池化层(nn.AdaptiveMaxPool2d或nn.AdaptiveAvgPool2d)来实现。

三、具体常用算法

1、YOLOv5

详解:yolov5中推理时置信度,设置的conf和iou_thres具体含义
YOLOV5模型转onnx并推理

名称 名词解释
Intersect over Union Threshold 交并比阈值
Roboflow 在线图像标注软件。目标检测中的数据格式转换工具
pipeline 直译就是管线,也就是流水线,流程
mAP(Mean Average Precision) 其中代表P(Precision)精确率。AP(Average precision)单类标签平均(各个召回率中最大精确率的平均数)的精确率,mAP(Mean Average Precision)所有类标签的平均精确率。
ONNX(Open Neural Network Exchange) 开放神经网络交换格式,ONNX 模型一般用于中间部署阶段,起到要给中间翻译的作用。ONNX简明教程。
• Pytorch -> ONNX -> TensorRT
• Pytorch -> ONNX -> TVM
• TF –ONNX – NCNN
Pytorch -> ONNX -> tensorflow
protobuf protocol buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小、更快、更为简单。 protobuf详细介绍和使用 。protocol buffer 文本格式
Objective-C 通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。
DLA 深度学习加速器
TensorRT TensorRT是nvidia家的一款高性能深度学习推理SDK。此SDK包含深度学习推理优化器和运行环境,可为深度学习推理应用提供低延迟和高吞吐量。

2、BEV感知算法

BEV视觉3D感知算法梳理

四、相关工具及工具包配置环境

jupyter notebook创建/删除虚拟环境----都在命令行执行
(包含源码+模型数据)使用TensorFlow, ONNX和TensorRT加速深度学习推理
resnet为残差网络-resnet-50介绍(一)
庖丁解牛-Resnet50 深度剖析,细致讲解,深入理解
window10下在anconda中虚拟环境下离线安装pytorch

待补充

请点击–> 深度学习与计算机视觉系列(10)_细说卷积神经网络
请点击–> 11种主要神经网络结构图解

系统学习Pytorch笔记一:Pytorch的数据载体张量与线性回归
系统学习Pytorch笔记二:Pytorch的动态图、自动求导及逻辑回归
系统学习Pytorch笔记三:Pytorch数据读取机制(DataLoader)与图像预处理模块(transforms)
系统学习Pytorch笔记四:模型创建Module、模型容器Containers及AlexNet网络搭建
系统学习Pytorch笔记五:nn的网络层介绍(卷积层,池化层,激活函数,全连接层等)
系统学习Pytorch笔记六:模型的权值初始化与损失函数介绍
系统学习Pytorch笔记七:优化器和学习率调整策略
系统学习Pytorch笔记八:Tensorboard可视化与Hook机制
系统学习Pytorch笔记九:正则化与标准化大总结
系统学习Pytorch笔记十: 模型的保存加载、模型微调、GPU使用及Pytorch常见报错

Protobuf的简单介绍、使用和分析文章来源地址https://www.toymoban.com/news/detail-486680.html

到了这里,关于Python 深度学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《深度学习推荐系统》笔记

    把相关内容整成了思维导图, 大家自提~ 用户角度 :解决”信息过载“的情况下,用户如何高效获得感兴趣信息; 公司角度 :解决产品能最大限度地吸引用户、留存用户、增加用户粘性、提高用户转化率,使公司商业目标连续增长。 2.1 逻辑架构 已知用户信息、物品信息和

    2024年02月16日
    浏览(27)
  • 七篇深入理解机器学习和深度学习的读物推荐

    在这篇文章中将介绍7篇机器学习和深度学习的论文或者图书出版物,这些内容都论文极大地影响了我对该领域的理解,如果你想深入了解机器学习的内容,哪么推荐阅读。 在自然语言处理和序列建模领域,Vaswani等人的一篇论文《Attention Is All You Need》彻底改变了这一领域。这

    2024年02月07日
    浏览(28)
  • 详解深度学习中推荐系统的经典模型

    摘要: DSSM 用字向量作为输入既可以减少切词的依赖,又可以提高模型的泛化能力,因为每个汉字所能表达的语义是可以复用的。 本文分享自华为云社区《深度学习应用篇-推荐系统[12]:经典模型-DeepFM模型、DSSM模型召回排序策略以及和其他模型对比》,作者:汀丶。 CTR预估

    2024年02月09日
    浏览(32)
  • AI人工智能 机器学习 深度学习 学习路径及推荐书籍

    人工智能、机器学习和深度学习覆盖的技术范畴是逐层递减的,三者的关系:人工智能 机器学习 深度学习。 人工智能(ArtificialIntelligence,AI)是最宽泛的概念,是研发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学 机器学习(MachineLear

    2023年04月24日
    浏览(43)
  • AIGC书籍推荐:《生成式深度学习的数学原理》

    生成式 AI 使用各种机器学习算法,从数据中学习要素,使机器能够创建全新的数字视频、图像、文本、音频或代码等内容。生成式 AI 技术在近两年取得了重大突破,产生了全球性的影响。它的发展离不开近年来生成式深度学习大模型的突破。与一般意义上可视为“黑盒”的

    2024年02月15日
    浏览(37)
  • 机器学习31:《推荐系统-IV》深度神经网络DNN

    在《 推荐系统(二)协同过滤 》一文中,笔者介绍了如何使用矩阵分解来学习嵌入。矩阵分解具有一些局限性: 基础矩阵分解只用了 UserID(QueryID) 和 ItemID 两个维度的信息,所有学到的知识都蕴含在 User 向量和 Item 嵌入中。可解释性差,同时,学习过程中很难融合更多有

    2024年02月16日
    浏览(30)
  • MATLAB算法实战应用案例精讲-【深度学习】推荐系统模型DSSM&DeepFM

    目录 前言 DSSM 输入层 英文 中文 表示层 匹配层

    2024年02月11日
    浏览(41)
  • 【深度学习】模型训练云服务器平台推荐!!!个人心路历程,新手少踩坑

    作为一名深度学习训练小白,想上github下一个一般的网络练练,但是每次千辛万苦地配置好环境,成功运行,没开始几步,就提示显存不够! (362条消息) 把显存用在刀刃上!17 种 pytorch 节约显存技巧_听 风、的博客-CSDN博客_降低显存占用 上网一搜一大堆教程,改小batchsize,清

    2023年04月22日
    浏览(36)
  • 电脑高效率工作、学习工具软件推荐

      本文介绍在学习、工作时,实测很好用、明显提高工作效率的几个免费电脑软件与小工具。   官方网站:https://todo.microsoft.com/tasks/    Microsoft To Do 是一款由 Microsoft 公司开发的待办事项管理应用程序。它提供了一个简单易用的界面,让用户可以方便地创建待办事项、

    2024年02月01日
    浏览(40)
  • 网络安全ctf学习资源/解题工具整理,解题工具,推荐收藏!

    对于想学习或者参加CTF比赛的朋友来说,CTF工具、练习靶场必不可少,今天给大家分享自己收藏的CTF资源,希望能对各位有所帮助。 CTF在线工具 首先给大家推荐我自己常用的3个CTF在线工具网站,内容齐全,收藏备用。 1、CTF在线工具箱:http://ctf.ssleye.com/ 包含CTF比赛中常用的

    2024年02月10日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包