avatar
Articles
851
Tags
236
Categories
189

Yan 的杂物志_个人主页分享
Search
深度网络调参
Created2020-06-14|2_Note0_Technic2_算法5_模型结构工具
深度网络调参 重要的超参数 深度学习网络有很多超参数,下面列出了一些比较重要,常常需要调节的超参数。 最重要 学习率 较重要 mini-batch size hidden units 网络层数 动量参数 学习率衰减 算力不同的调参 算力不同、网络规模、数据量不同,也有不同的调参方法,当模型和计算量较小时,可以使用网格调参;在算力足够的情况下,使用多组参数并行训练模型;反之,如果算力不足,且模型和数据较大,可能需要手动调参,比如训练几天之后,手动下调学习率,动量等超参数,人为地逐渐推进训练过程。 网格调参和随机调参 机器学习中常使用网格调参,即将参数列成表格,按一定步长尝试所有组合的参数,这种方法适用于较小的网络。深度学习网络一般较大,训练时间较长,一般使用随机抽取方法,在重点区域进行更多的抽样(密度更大),这样在一开始不确定哪些超参数重要时,可以广撒网,越往后越有针对性,实现从粗到细调参,同时又兼顾各种可能性,以免陷入局部最优值,类似于蒙特卡洛方法。 非线性轴调参 非线性轴调参也是常见的调参问题,比如设置学习率常常是 0.1, 0.01, 0.001, 0.0001…这样就不能 ...
设置BatchSize
Created2020-06-14|2_Note0_Technic2_算法5_模型结构工具
设置 BatchSize BatchSize 是非常重要的超参数,它不仅影响训练速度,也影响模型精度。本篇来讨论如何选择 BatchSize。 BatchSize 是否越大越好? BatchSize 一般指同时代入训练模型的实例个数,最直接的经验是如果 GPU 显存不大,又设置较大的 BatchSize 时直接报错“cuda runtime error(2): out of memory”。 是不是只要机器性能允许,就要设置尽可能大的 Batch size 呢?同时训练多个实例比逐个代入单个实例训练速度又能提高多少? 下图为使用不同的 batchSize,在 LeNet 上训练 mnist 数据的效果,使用的框架为 Theano。 可以看到,使用较大的 batchSize 的确可以提速,但是 batchSize 大到一定程度后,效果并不十分明显。 从图中可以看到如果将所有数据全部代入一次迭代(左图),则在训练集上的代价函数下降比较平滑,如果切分成多个 Batch,代价函数不一定是下降的。这是由于每一个 Batch 中数据的难度不同,造成了代价函数忽大忽小。 如何选择 batch 大 ...
避免过拟合
Created2020-06-14|2_Note0_Technic2_算法5_模型结构工具
避免过拟合 欠拟合和过拟合 欠拟合是指在训练集和测试集(或验证集)上模型效果都不好,一般由于模型能力不足导致;过拟合是指模型在训练集上表现好,而在测试集上表现不好,一般由于模型过度拟合了训练集中的噪声导致。本文主要讨论解决过拟合问题的方法。 L2 正则化 无论机器学习还是深度学习,L2 正则化项都用于限制参数 W 过大,它被累加在代价函数之中。 代价函数J除了计算每个实例的误差L,还加入网络中每层参数W的 2 范数的平方,并用λ作为参数,当λ较大时,就需要W接近0,才能得到较小的代价函数,这样一些无关紧要的参数就变成了0,从而减少了模型的复杂度,以及压缩后模型的规模。另外,较小的W也使层之间传递的数据变小,这样在使用 sigmoid 和 tanh 激活函数时,数据刚好集中在中间类似线性变换的一段,使非线性变换的结果类似线性变换。由于多个线性组合叠加相当于单个线性层,因此也倾向于简化模型。 如果使用 L1 正则化,参数矩阵将变得稀疏,根据经验,一般 L2 效果更好。L2 正则化方法可用于简化决策,但不适用于需要复杂决策的问题。使用该方法时,需要尝试多个λ值。 Dropout 方法 Dr ...
初始化网络参数
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: ...
1…525354…86
avatar
Yan.xie
顺流而下还是逆流而上?
Articles
851
Tags
236
Categories
189
Follow Me
Announcement
This is my Blog
Recent Post
LLM+知识库_总结篇2026-04-10
LLM_知识库_02_记忆宫殿2026-04-10
LLM_知识库_03_LLM_Wiki2026-04-10
模仿欲望_读后感2026-04-07
OpenAI的CUA_ComputerUseAgent2026-04-07
Categories
  • 0_IMO2
    • 工作1
    • 方法1
      • 工作1
  • 1_Data11
    • 生活9
      • 主食3
      • 菜3
Tags
图形图像 安卓开发 预算 关系抽取 策略 效率工具 后端 笔记工具 自然 生物医学 运动 AI功能 咖啡拉花 音视频处理 理财规划 数据分析 金融市场 android 心理 嵌入表示 开源项目 情绪分析 菜谱 加密货币 Ubuntu 日常琐事 公众号 开源社区 GitHub Actions 指标 视频处理 辅助编程 AI绘画 云服务器 音乐 模型解释 智能家居 效率 插件推荐 协议
Archives
  • April 202616
  • March 20265
  • February 202637
  • January 20262
  • December 20252
  • November 202511
  • October 20258
  • September 20254
Info
Article :
851
Total Count :
1084.3k
UV :
PV :
Last Push :
©2020 - 2026 By Yan.xie
Framework Hexo|Theme Butterfly
京公网安备11010802043346号
京ICP备2023029600号-1
Search
Loading the Database