pytorch

聚焦快速机器学习训练算法,UC伯克利尤洋189页博士论文公布

雨燕双飞 提交于 2020-11-24 06:36:33
点击上方“ 迈微电子研发社 ”,选择“ 星标★ ”公众号 重磅干货,第一时间送达 这份 189 页的博士学位论文,凝结了尤洋在快速机器学习训练算法领域的研究心血。 过去十年,深度学习应用领域的数据量迅速增长,使得深度神经网络(DNN)的训练时间拉长。而这已经成为机器学习开发者和研究者面临的瓶颈问题。例如,在 8 个 P100 GPU 上完成 90 个 epoch 的 ImageNet/ResNet-50 训练需要 29 个小时,在 16 个 v3 TPU 芯片上完成 BERT 预训练需要 81 个小时。 因此,如何有效缩短机器学习训练时间,同时完成高质量的训练,对于解决当前的瓶颈问题具有重大意义。 本文将介绍一篇长达 189 页的博士学位论文,作者为加州大学伯克利分校计算机系的尤洋博士。 尤洋的主要研究方向是高性能计算与机器学习的交叉领域,当前研究重点为大规模深度学习训练算法的分布式优化。他曾创造 ImageNet 训练速度的世界纪录,相关研究成果被 Google、Facebook、腾讯等科技巨头在实际中使用。 尤洋曾以一作的身份获得 2018 年国际并行处理大会(ICPP)最佳论文奖,论文《Imagenet training in minutes》所提出的方法刷新了 ImageNet 训练速度的世界纪录。 去年,尤洋和来自谷歌和 UCLA

「自然语言处理(NLP)」一文带你了解交叉熵(CrossEntropyLoss)

淺唱寂寞╮ 提交于 2020-11-23 06:13:19
喜欢我们,点击上方 AINLPer ,关注一下,极品干货即刻送达! 明天要学习工作了,早点休息~ 引言 在使用pytorch深度学习框架,计算损失函数的时候经常会遇到这么一个函数:nn.CrossEntropyLoss()。该损失函数结合了nn.LogSoftmax()和nn.NLLLoss()两个函数。它在做分类(具体几类)训练的时候是非常有用的。在训练过程中,对于每个类分配权值,可选的参数权值应该是一个1D张量。当你有一个不平衡的训练集时,这是是非常有用的。那么针对这个函数,下面将做详细的介绍。 本文概要 1 什么是交叉熵? 2 交叉熵原理 3 Pytorch中CrossEntropyLoss()函数 4 参考文献 正文开始 1 什么是交叉熵? 交叉熵主要是用来判定实际的输出与期望的输出的接近程度 。 为什么这么说呢,举个例子: 在做分类的训练的时候,如果一个样本属于第K类,那么这个类别所对应的的输出节点的输出值应该为1,而其他节点的输出都为0,即[0,0,1,0,….0,0],这个数组也就是样本的Label,是神经网络最期望的输出结果。 也就是说用它来衡量网络的输出与标签的差异,利用这种差异经过反向传播去更新网络参数。 2 交叉熵原理? 在说交叉熵之前,先说一下 信息量 与 熵 。 信息量: 它是用来衡量一个事件的不确定性的;一个事件发生的概率越大,不确定性越小

Detectron2源码阅读笔记-(三)Dataset pipeline

故事扮演 提交于 2020-11-21 11:17:04
构建data_loader原理步骤 # engine/default.py from detectron2.data import ( MetadataCatalog, build_detection_test_loader, build_detection_train_loader, ) class DefaultTrainer(SimpleTrainer): def __init__(self, cfg): # Assume these objects must be constructed in this order. data_loader = self.build_train_loader(cfg) ... @classmethod def build_train_loader(cls, cfg): """ Returns: iterable """ return build_detection_train_loader(cfg) 函数调用关系如下图: 结合前面两篇文章的内容可以看到detectron2在构建model,optimizer和data_loader的时候都是在对应的 build.py 文件里实现的。我们看一下 build_detection_train_loader 是如何定义的(对应上图中 紫色方框内 的部分( 自下往上 的顺序)): def build

torchline:让Pytorch使用的更加顺滑

生来就可爱ヽ(ⅴ<●) 提交于 2020-11-21 04:17:51
torchline地址: https://github.com/marsggbo/torchline 相信大家平时在使用Pytorch搭建网络时,多少还是会觉得繁琐,因为我们需要搭建数据读取,模型,训练,checkpoints保存等等一系列模块。每当切换到新的任务后很多情况下之前的代码不能复用,或者说要复用就需要做很多地方的修改,到最后还不如重新写一遍。所幸,pytorch_lightning让这一过程简化了很多,相信如果你用过这个库你也会体验到它的方便性。但是torchline的存在是让你使用Pytorch更加的顺滑舒畅。 torchline基于 pytorch_lightning (PL) 开发,整个库的结构设计借鉴了 detectron2 ,具体可以阅读下面几篇文章进行了解: Detectron2源码阅读笔记-(一)Config&Trainer Detectron2源码阅读笔记-(二)Registry&build_*方法 Detectron2源码阅读笔记-(三)Dataset pipeline 如下图所示,灰色部分 PL 可以自动完成。我们需要做的,差不多也就加载数据、定义模型、确定训练和验证过程 torchline 则进一步简化,而且可以让你的模型复用性更高。 以构建模型为例进行大致的介绍(细节可以去github查看),假如你之前创建了一个 MyModel 的模型

人工智能培训有哪些实战项目?

旧城冷巷雨未停 提交于 2020-11-20 05:20:00
  学习人工智能除了要构建自己的基础知识框架以外,还要注重实战项目的练习,这样才能达到灵活掌握人工智能技术的目的。因此,大家在选择人工智能培训机构的时候,一定要考察培训课程中有没有实战项目。以博学谷的人工智能培训课程为例,下面一起来看看相关的实战项目内容。   实战项目一:人脸识别打卡   随着人工智能时代的到来,各大厂纷纷投入大量的人力物力进军人工智能领域。学习掌握大厂AI技术,可以使我们更快捷的实现业务场景智能化。本次人工智能培训主要介绍了百度AI的三大平台:机器学习平台、深度学习平台、人工智能平台,并对人工智能平台包含的三大主流技术:图像、语音、自然语言处理进行了深入讲解,最后以“人脸识别打卡”案例,详细讲解了项目架构设计和开发流程。学完本课程,不仅可以掌握图像、语音和自然语言处理API的使用,而且可以利用API实现具体应用的开发。   实战项目二:商品物体检测   物体检测是计算机视觉中最常见应用之一,有极为广泛的用途。本课程从目标检测算法出发,对各个算法进行了全面细致的讲解,然后讲解了数据集标记与处理的相关内容,最后以一个实战项目“商品物体检测”为例,讲解了整个项目的架构设计,以及整个项目的开发流程。学完本课程不仅可以掌握目标检测算法的原理、模型训练工具的使用,而且可以掌握利用TensorFlow Serving完成模型部署以及客户端编写能力。   实战项目三:AI游戏

Speaker Encoder复现: Transfer Learning from Speaker Verification to Multispeaker TTS

笑着哭i 提交于 2020-11-19 23:51:43
0. 说明 跑通他: https://github.com/CorentinJ/Real-Time-Voice-Cloning 中文版1: https://github.com/KuangDD/zhrtvc git clone https://github.com/CorentinJ/Real-Time-Voice-Cloning.git cd Real-Time-Voice-Cloning/ 1. 环境 环境名字为: voiceclone_p36 conda create -n voiceclone_p36 python=3.6.5 conda activate voiceclone_p36 conda install pytorch torchvision torchaudio cpuonly -c pytorch conda install -c conda-forge librosa # 这一点是特别的 (把 ffmpeg也顺便装好了 ) 将requirement.txt中的librosa那条删除 conda install tensorflow-gpu==1.14 将requirement.txt中的tensorflow==1.15那条删除 sudo pacman -S python-pyqt5 将requirement.txt中的PyQt5那条删除 再删除一些已经装好的

项目笔记《DeepLung:Deep 3D Dual Path Nets for Automated Pulmonary Nodule Detection and Classification》...

邮差的信 提交于 2020-11-19 12:04:00
我只讲讲检测部分的模型,后面两样性分类的试验我没有做,这篇论文采用了很多肺结节检测论文都采用的u-net结构,准确地说是具有DPN结构的3D版本的u-net,直接上图。 DPN是颜水成老师团队的成果,简单讲就是dense 与 residual的结合,如上图,输入特征图一部分通过residual与输出相加,另一部分与residual的结果再串联,个人觉得这个网络好乱,不简洁的网络都不是好网络,恰好文章中还给出了只采用residual的版本,所以我其实要讲的是这个只有residual的u-net,上图。 可以看到,输入是96*96*96的立方体,里面包含标记的结节,经过24个3*3*3的卷积核,通道数变为24,然后经过4个stage,尺寸缩减为1/16,接下来是分辨率放大阶段,采用反卷积实现,连续两个阶段都是反卷积后与低层特征串联,然后经过两个卷积操作,通道数变为15,图示中以3*5显示,是为了更清楚地表明,最后输出的proposal中,每个位置有三个,分别采用三种尺寸,设置的三个anchor尺寸是[5,10,20],每个位置预测z,y,x,d,p分别是结节的三维坐标以及直径,置信度。 下面看一下源码,采用pytorch框架。 首先是residual block的设计,位于layers.py文件 class PostRes(nn.Module): def __init__ (self,

AI性能最高提升20倍 阿里云新一代GPU云服务器亮相 搭载NVIDIA A100

南楼画角 提交于 2020-11-17 14:11:26
近日,阿里云异构计算宣布上线gn7 GPU系列云服务器,即日起开放售卖。gn7系列实例是阿里云新一代GPU计算实例,主要面向AI训练和高性能计算应用。该产品基于NVIDIA A100 Tensor Core GPU打造,云服务器中的8块A100 GPU以NVIDIA NVSwitch实现了GPU之间的NVLink直接通信。 结合最新支持的Tensor Core加速能力,阿里云gn7云服务器最高可让AI最佳性能提升20倍,高性能计算速度提升2.5倍,单卡最高支持19.5TFlops(FP64)、156TFlops (TF32)、312 TFlops(FP16 混合精度)的运算。对于大模型训练的场景,阿里云自研的神龙AI加速引擎AIACC可以通过优化多GPU训练通信效率,进一步提升多GPU和多机并行训练的加速比,为AI研发过程节省更多的时间和成本。 第一批上线的产品为效率最高的阿里云神龙裸金属实例ebmgn7, 用户可直接获得一台完整的配置有Intel 2代Xeon Scalable 52核CPU、768G系统内存和由 NVSwitch互联的8颗A100 的GPU服务器主机。 随着人工智能的不断发展,深度学习的训练模型越来越庞大和复杂,训练模型需要的算力也在快速增长。针对AI训练和高性能计算的算力需求,NVIDIA于今年5月推出了 A100 GPU。NVIDIA A100

NeurIPS 2020 | 清华大学提出:通用、高效的神经网络自适应推理框架

邮差的信 提交于 2020-11-17 03:45:34
来源:人工智能AI技术 本文 约3400字 ,建议阅读 7 分钟 本文介绍我们被NeurIPS 2020会议录用的一篇文章。 本文主要介绍我们被NeurIPS 2020会议录用的一篇文章:Glance and Focus: a Dynamic Approach to Reducing Spatial Redundancy in Image Classification。 论文: https://arxiv.org/abs/2010.05300 代码和预训练模型已经在Github上面放出: https://github.com/blackfeather-wang/GFNet-Pytorch 这项工作提出了一个通用于 绝大多数CNN 的自适应推理框架,其效果比较明显,在同等精度的条件下, 将MobileNetV3的平均推理速度加快了30%,将ResNet/DenseNet加速了3倍以上,且在iPhone XS Max上的实际测速和理论结果高度吻合。 此外,它的计算开销可以简单地 动态在线调整,无需额外训练。 (太长不看版)下面一张图可以概括我们做的事情:将图像识别建模为序列决策过程,先将缩略图输入神经网络(Glance),再不断选择最关键的图像区域进行处理(Focus,利用强化学习实现),直至网络产生一个足够可信的预测结果时停止;对于简单和困难的样本分配不同的计算资源,以提升整体效率。