avatar
Articles
829
Tags
252
Categories
168

Yan 的杂物志_个人主页分享
Search
初始化网络参数
Created2020-06-11|2_Note0_Technic2_算法5_模型结构工具
初始化网络参数 #深度学习 为什么要给网络参数赋初值 既然网络参数通过训练得到,那么其初值是否重要?设置初值不佳是否只影响收敛速度而不影响模型结果?网络参数是否可以设置为全 0 或者全 1? 假设网络的参数W初值都是0,如下图所示,无论输入任何X,第一层的输出A将都为0,再向前传递到 y 也是 0,使用误差函数调参时,每一层的梯度只与该层的输入和输出有关,由于 a1,a2 值相等,计算出的梯度调整的值,以及调整后的梯度也相等;第二次迭代也同理,由于 a1,a2 相等,w[2]中各单元的值也相等。因此该层有 100 个单元与 1 个单元没有差异,该问题被称为“对称性”问题。 试想将 w 设置成全 1,则有 a1=x1+x2,a2=x1+x2,a1 与 a2 值仍然相同,对称性问题依然存在。由此,一般将参数设置为随机值。 设置成随机值还不够,还需要设置成较小的随机值,试想如果 w 的均值在 0.5 附近,某一层的输入输出都为 500 个元素,那么经过该层乘和加的运算,输出约是输入值的 250 倍;如果存在多层,250x250x…,很快就爆炸了。如果在层后使用 Sigmoid 函数,将值映 ...
激活函数
Created2020-06-11|2_Note0_Technic2_算法5_模型结构工具
激活函数 为什么使用激活函数 如果没有激活函数,神经网络就变成了线性模型,输出是输入的线性组合,使用一层与使用多层没有区别。如下式所示,输入为 x,经过线性层计算出 a1,将 a1 输入下个线性层得到 a2,展开后可以看出,最终得到的仍然是 wx+b 的线性组合,只是参数值不同。 图片.png 另外,线性层无法解决非线性问题,如在预测房价问题中,如果不使用激活函数,则房价可能计算成负值,这也与实际不符。理论上,加了激活函数后,模型可以逼近任意函数。 激活函数又分线性激活函数和非线性激活函数,一般使用的都是非线性激活函数,线性激活函数与线性层类似,只在输出层偶尔使用,不在此展开讨论。 何时使用激活函数 激活函数一般放置在线性变换之后,在线性变换和激活函数之间,常常插入归一化层,用于解决饱和的非线性激活函数问题(下面 Sigmoid 函数部分详细说明)。 如何选择激活函数 从一些当前流行的深度学习网络代码中,可以看到,当前使用的激活函数绝大部分是 ReLU;在一些特殊情况下,也使用 Sigmoid,比如二分类问题的最后一层使用 Sigmoid 将输出转换到 0-1 之间;又如使用注意 ...
浅析梯度迭代算法
Created2020-06-07|2_Note0_Technic2_算法5_模型结构工具
浅析梯度迭代算法 梯度迭代类算法已成为目前各种领域的主流算法。各种现实中的问题分解抽象成机器可以处理的形式之后,基本都可归类为图像、自然语言处理、决策、时序、强化学习这几种类型,而当今解决这些问题的顶尖算法中,梯度迭代(梯度上升或梯度下降)都占据主流地位,比如决策类问题的比赛中,梯度下降决策树 GBDT 类算法是完全的主流,使用深度学习网络处理图片自然语言问题更毋庸置疑。 那么,梯度迭代算法究竟是什么?简单地说,就是代入数据,预测结果,如果结果偏大就调小参数,结果偏小就调大参数。举一个简单的例子,分为三个小问题: 问题一 假设父亲的智商影响儿子的智商,设父亲的智商为x,儿子的智商为y,y=wx,训练一个参数 w 学习二者之间的关系。目前有多个父子智商数据对,其中第一个数据:父亲智商 x=100,儿子智商 w=110,将 w 初值设为 w=1.0;学习率设为 0.00001,计算平均误差。 如下程序用于学习 w。 123456789101112131415161718192021import torch import matplotlib.pyplot as plt %matplo ...
Pytorch常用函数之一_数据类型
Created2020-06-05|2_Note0_Technic3_编程Pytorch
Pytorch 常用函数之一 _ 数据类型 #Pytorch 编程语言和自然语言一样,不理解的词越多,对全文的理解就越差。掌握必要的基础知识,让后期看代码更加流畅。 机器学习需要掌握数据处理工具 Pandas、Numpy,同理,深度学习也需要掌握相应的工具,在 Pytorch 中数据存储在 Tensor 之中,本篇将介绍它们的基本用法以及与之相关的常用函数。 查看版本信息 包含头文件 11. import torch 1.查看 torch 版本 11. print(torch.__version__) 2.查看 CUDA 版本 11. print(torch.version.cuda) GPU 相关操作 1. 查看当前是否支持 GPU 11. device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') 2.GPU 相关的数据转换 123451. a = torch.Tensor([5]) 2. b = a.to('cuda') # ...
搭建深度学习的docker环境
Created2020-06-04|2_Note0_Technic2_算法5_模型结构环境
搭建深度学习的 docker 环境 介绍 深度学习一般依赖比较复杂的环境,每个项目需要的底层库各有不同,有时在 github 中下载的代码只能运行在版本较低的的工具链之上。想在一台机器上建立适合所有项目的环境非常困难,大多数情况下使用 docker 维护不同项目针对的不同环境。 CUDA 是 NVIDIA 推出的运算平台,一般通过它调用 GPU,CUDA 的主要版本有 7.x, 8.x,9.x,10.x,目前最常用的是 9 和 10,它们对接的上层软件版本也各不相同。如: 1234torch 1.1.0/1.1.0 + torchvision 0.2.* + CUDA 9torch 1.2.0/1.3.0 + torchvision 0.3.* + CUDA 10torch 1.2.0/1.3.0 + torchvision 0.4.* + CUDA 10torch 1.4.0 + torchvision 0.5.* + CUDA 10 除了 CUDA 基础库以外,还需安装相关工具包。可以在同一个操作系统中安装多个 CUDA 版本,使用时切换即可。 在 Docker 中使用 GPU 除 ...
TorchVision
Created2020-06-04|2_Note0_Technic2_算法8_图形图像目标检测与分割
TorchVision #Pytorch #图形图像 说明 很多基于 Pytorch 的工具集都非常好用,比如处理自然语言的 torchtext,处理音频的 torchaudio,以及处理图像视频的 torchvision。 torchvision 包含一些常用的数据集、模型、转换函数等等。当前版本 0.5.0 包括图片分类、语义切分、目标识别、实例分割、关键点检测、视频分类等工具,如 mask-rcnn 功能也都包含在内了。mask-rcnn 的 pytorch 版本最高支持 torchvision 0.2.*,0.3.0 之后就将 mask-rcnn 包含到 tensorvision 之中了。 安装 torchvision 安装非常方便。$ pip install torchvision 但需要注意版本匹配: 1234torch 1.1.0/1.1.0 + vision 0.2.* + CUDA 9torch 1.2.0/1.3.0 + vision 0.3.* + CUDA 10torch 1.2.0/1.3.0 + vision 0.4.* + CUDA 10torch 1.4 ...
Pytorch提取不同层次图片的特征
Created2020-05-21|2_Note0_Technic3_编程Pytorch
Pytorch 提取不同层次图片的特征 #图形图像 #Pytorch 下例使用 torchvision 库提取了 resnet 最后一层的卷积特征;resnet 各 block 的卷积特性,以及金字塔特性。 具体取哪一层特征视使用场景而定,resnet 各 block 的输出包含更丰富的特征;从 resnet 最后一层提取的特征更为抽象;fpn 每层通道数相等,含义也类似,可以在多层之间比较。 123456789101112131415161718192021222324252627import osimport torchvision.models.detection.backbone_utils as backbone_utilsimport torchvisionimport torch.nn as nndevice = 'cuda'os.environ["TORCH_HOME"] = '/notebooks/data/mine/live/code_v7/model/'USE_FPN = Trueif USE_FPN: ...
Pytorch避免更新模型梯度
Created2020-05-21|2_Note0_Technic3_编程Pytorch
Pytorch 避免更新模型梯度 #Pytorch 1. torch.no_grad (1) 用法 12with torch.no_grad(): 具体操作 (2) 说明 上例的“具体操作”中均不更新梯度,这样可以节约计算时间和内存。一般用于验证或者测试阶段。 2. param.requires_grad (1) 用法 1p.requires_grad=False (2) 说明 一般用于将某一层设置为不自动更新梯度,以避免训练模型时对该层调参。 3. model.eval (1) 用法 12model.eval()具体操作 (2) 说明 模型支持 train 模式和 eval 模式,在使用模型之前调用 model.eval(),进入 eval 评估模型,它将改变 forward,如禁止 dropout,并用统计数据做 batch norm。因此,有时 train 模式和 eval 模式模型计算的结果不同。
怎么看目标检测的效果
Created2020-05-12|2_Note0_Technic2_算法8_图形图像目标检测与分割
怎么看目标检测的效果 怎么看目标检测的效果 Recall&Precision 引用一个知乎上的例子:某池塘有 1400 条鲤鱼,300 只虾,300 只鳖。现在以捕鲤鱼为目的。撒一大网,逮着了 700 条鲤鱼,200 只虾,100 只鳖。那么,这些指标分别如下:正确率 Precision = 700 / (700 + 200 + 100) = 70% 召回率 Recall = 700 / 1400 = 50% (出处:https://www.zhihu.com/question/19645541/answer/39732647) IoU:预测区域和目标区域重合比例,即交集除并集 IoU=0.50: 重合比例大于 0.5 的算正例。 IoU=0.75: 重合比例大于 0.75 的算正例。 IoU=0.50:0.95: 从 0.50 到 0.95 每隔 0.5 计算一次,然后取均值。 area:区域大小 small:x<32x32 medium:32x32<x<96x96 large:x>96x96 maxDets:最多取几个目标区域 其 ...
调节学习率
Created2020-04-25|2_Note0_Technic2_算法5_模型结构工具
调节学习率 在深度学习和其它一些循环迭代算法中,学习率都非常重要。在效率上,它几乎是与算力同等重要的因素;在效果上,它也决定着模型的准确率。如果设置太小,则收敛缓慢,也有可能收敛到局部最优解;设置太大又导致上下摆动,甚至无法收敛。 设定学习率 下面总结了设置学习率的一些方法: 理论上,如果将学习率调大 10 倍,现在 10 次训练就可以达成之前 100 次的训练效果。 一般使用工具默认的学习率,如果收敛太慢,比如训练了十几个小时,在训练集和验证集上仍在收敛,则可尝试将学习率加大几倍,不要一下调成太大。 如果误差波动过大,无法收敛,则可考虑减小学习率,以便微调模型。 在测试阶段建议使用较大的学习率,在短时间内测算过拟合位置,尤其好用。 在预训练模型的基础上 fine-tune 模型时,一般使用较小的学习率;反之,如果直接训练,则使用较大的学习率。 对于不同层可使用不同学习率,比如可对新添加的层使用较大的学习率,或者“冻住”某些层。 下图展示了不同学习率的误差变化曲线。 图片来自网络 手动调节学习率 Pytorch 提供在迭代过程中修改学习率的方法。最简单的方法是手动修改学习率的 ...
1…505152…83
avatar
Yan.xie
顺流而下还是逆流而上?
Articles
829
Tags
252
Categories
168
Follow Me
Announcement
This is my Blog
Recent Post
对谈_250610_抑郁2_少年的困境2025-07-07
对谈_250610_抑郁3_边缘叛逃者2025-07-07
对谈_250616_抑郁4_不合适的目标2025-07-07
对谈_250618_抑郁5_反刍2025-07-07
对谈_250530_钻空子2025-07-07
Categories
  • 0_IMO76
    • 工作1
    • 说给一个人听75
      • 01_自我建构29
        • 实修3
        • 思考与觉悟14
        • 行动与进化12
      • 02_情绪心理16
Tags
深度学习/扩散模型 知识管理 关系 禅宗 抑郁 健康 图形图像 关系反转 宗教 视频生成 驱动 开源项目 模型增强 大型语言模型 区块链 数学 社会学 移动开发 自然语言处理/BERT 语音 自我表达 技巧 价值观 技术 深度学习/工具 阅读心理学 深度学习/知识蒸馏 哲学 主题笔记 代码模型 心理建设 权力结构 编程语言/Java 后端测试 主观能动性 AI功能 算法实战 自然语言处理 代码生成 无代码开发
Archives
  • July 202520
  • June 202539
  • May 202530
  • April 202516
  • March 202512
  • February 20252
  • January 20256
  • December 20242
Info
Article :
829
Total Count :
1147.7k
UV :
PV :
Last Push :
©2020 - 2025 By Yan.xie
Framework Hexo|Theme Butterfly
京公网安备11010802043346号
京ICP备2023029600号-1
Search
Loading the Database