机器学习(2)——归一化与标准化
特征处理归一化Normalization由于每一组特征数据的量纲是不同的,我们需要先将他们的量纲统一,之后再去训练学习,每一组特征数据的变化对预测结果的影响。
特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间
def MinMaxScaler(feature_range=(0, 1…)):归一化。每个特征缩放到给定范围(默认[0,1])
1234567891011121314151617181920212223242526from sklearn.preprocessing import MinMaxScaler, StandardScalerdef mm(): """ 归一化处理 :return: NOne """ # 归一化容易受极值的影响 mm = MinMaxScaler(feature_range=(0, 1)) #通过fit_transform进行转换 data = mm.fit_transform([[90, 2, 10, 40], [60, ...
机器学习(1)——特征工程
机器学习的流程
预处理 ——> 特征工程 ——> 机器学习 ——> 模型评估
如果未达到要求,重新循环
特征工程将原始数据转换为更好地代表预测模型的潜在问题的特征的工程,从而提高了模型对位置数据预测的准确性( 属于数据预处理阶段的工作)
以scikit-learn为例:
1234567891011121314151617181920212223242526272829from sklearn.feature_extraction import DictVectorizerfrom sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizerfrom sklearn.preprocessing import MinMaxScaler, StandardScalerfrom sklearn.feature_selection import VarianceThresholdfrom sklearn.decomposition import PCAimport jiebaimport numpy as ...
卷积核(kernels)与滤波器(filters)的关系
简单理解:卷积核:二维的矩阵滤波器:多个卷积核组成的三维矩阵,多出的一维是通道。
先介绍一些术语:layers(层)、channels(通道)、feature maps(特征图),filters(滤波器),kernels(卷积核)。从层次结构的角度来看,层和滤波器的概念处于同一水平,而通道和卷积核在下一级结构中。通道和特征图是同一个事情。一层可以有多个通道(或者说特征图)。如果输入的是一个 RGB 图像,那么就会有 3 个通道。“channel”通常被用来描述 “layer” 的结构。相似的,“kernel”是被用来描述 “filter” 的结构。
filter 和 kernel 之间的不同很微妙。很多时候,它们可以互换,所以这可能造成我们的混淆。
那它们之间的不同在于哪里呢?一个 “Kernel” 更倾向于是 2D 的权重矩阵。而 “filter” 则是指多个 Kernel 堆叠的 3D 结构。如果是一个 2D 的 filter,那么两者就是一样的。但是一个 3Dfilter,在大多数深度学习的卷积中,它是包含 kernel 的。每个卷积核都是独一无二的,主要在于强调输入通道的不 ...
安装Go环境
安装 Go 语言及搭建 Go 语言开发环境
下载下载地址
Go 官网下载地址:https://golang.org/dl/
Go 官方镜像站(推荐):https://golang.google.cn/dl/
版本的选择Windows 平台和 Mac 平台推荐下载可执行文件版,Linux 平台下载压缩文件版。
(目前的最新版本可能不是 1.11.5,但是安装过程类似哦。)
Windows 下安装Go环境
此安装实例以 64位Win10系统安装 Go1.11.5可执行文件版本为例。
将上一步选好的安装包下载到本地。
双击下载好的文件,然后再按照下图步骤安装即可。
Linux下安装Go环境
登录 LinuxMac 或 Linux 的用户可以用命令ssh root@xxx.xxx.xxx.xxx登录主机Window 的用户可以使用 SecureCRT 登录主机虚拟机用户直接打开你的虚拟机
安装 Go 环境
Golang 官网下载地址:https://golang.org/dl/
打开官网下载地址选择对应的系统版本, 复制下载链接 这里我选择的是 go1.11.5.linux ...
论文解读:GPipe
背景:增大模型规模通常是提高模型效果的有效方案,但是更多的模型参数,更复杂的模型计算逻辑,导致模型的训练过程需要更多的内存。同时计算设备 (GPU) 的内存资源往往非常非常有限,单台设备不足以支持超大规模模型的训练,而将模型分布在多台设备上则是一种可能的解决方案。
简介:GPipe 使用模型并行方案,将模型切分成一连串 stage,每个 stage 放在独立的设备(GPU/TPU)上,实现对超大规模模型的支持,同时利用 Pipeline 的方案,提高了模型并行模式下的设备利用率。最终 GPipe 通过更大规模的模型和更大的 batch_size,在图像和 NLP 的模型上都得到更好的模型效果。
方案设计
1. 划分 stage如图 1.(a) 左图所示,将模型划分为连续的几个 stage,每个 stage 各自对应一个设备。这样就使得模型的大小可以突破单个设备内存的大小,因为一台设备只需要能够容纳部分模型的参数和计算。
2. 划分 Micro-Batch 和 Pipeline图 1.(b) 为一般的模型并行的运算模式,在每个时间点只有一台设备在处理计算逻辑,完成计算后将结果发送给下 ...
论文解读:PipeDream
本文介绍了微软新提出的 PipeDream,旨在使深度学习网络训练并行化水平更高,进而提高训练效率。
深度神经网络(DNNs:Deep Neural Networks)已经在大量应用中取得了巨大进展,这些应用包括图像分类、翻译、语言建模以及视频字幕等。但 DNN 训练极其耗时,需要多个加速器高效地并行化。
在论文 “ PipeDream: Greneralized Pipeline Parallelism for DNN Training ”(该论文发表于第 27 届 ACM 操作系统原理研讨会: SOSP 2019 )中,微软系统研究小组的研究员,与来自卡内基梅隆大学和斯坦福大学的同事和学生们一起提出了一种 DNN 并行化训练的新方法。正如论文里在大量模型上展示的那样,这套被称为 PipeDream 的系统比传统的训练方法快了最多 4.3 倍。
DNN 训练是在前向和后向通道计算中迭代进行的。在每轮迭代中,训练过程循环处理输入数据的一个 minibatch,并且更新模型参数。最常见的 DNN 并行化训练方法是一种被称为数据并行化的方法(见下图 1),这种方法把输入数据分散到各个 ...
anaconda3的使用
1、安装 anaconda3 安装条件
系统要求:32 位或 64 位系统均可
下载文件大小:约 500MB
所需空间大小:3GB 空间大小(Miniconda 仅需 400MB 空间即可)
(1)地址 anaconda 下载。最新版本为 Anaconda3-2020.02-Linux-x86_64.sh,启动终端,输入如下指令:
1bash ~/Downloads/Anaconda3-2020.02-Linux-x86_64.sh
(2)安装过程中,看到提示 “In order to continue the installation process, please review the license agreement.”(“请浏览许可证协议以便继续安装。”),点击“Enter” 查看 “许可证协议”,也可以点击空格翻页,这样快一些。在“许可证协议” 界面将屏幕滚动至底,输入 “yes” 表示同意许可证协议内容。然后进行下一步。
(3)安装过程中,提示 “Press Enter to accept the default install ...
Numpy基础用法
一个由国外大神制作的 NumPy 可视化教程,直观地介绍 NumPy 的各种用法,很容易就能理解。
话不多说,一睹为快。
数组先来介绍最基础的一维数组。
创建数组np.array() 直接创建:
使用 np.ones()、np.zeros() 等方法:
我们在写数组的时候是横着写的,而其实数组是列向量,这样很直观。
数组运算加减乘除
(注意这里的data和ones不是上面的data,ones)
数组乘以数值
数组索引
数组聚合
上面是一维数组,下面介绍二维维数组也就是矩阵的使用技巧。
矩阵创建矩阵直接创建:
使用 np.ones()、np.zeros() 等方法:
这样就很容易理解括号里 (3,2) 的含义。
矩阵运算
矩阵点积矩阵点积跟线性代数基本一样,有些抽象,借助示意图能很好理解:
进一步拆分解释:
矩阵索引
矩阵聚合求最值
按行 / 列聚合
矩阵转置
矩阵重塑reshape() 用法:
mark
高维数组Numpy 不仅可以处理上述的一维数组和二维矩阵,还可以处理任意 N 维的数组,方法也大同小异。
创建多维数组
掌握了以上基础后,我们可以做 ...
毕业设计-日志
2021/3/3
阅读论文: PipeDream: Fast and Effiffifficient Pipeline Parallel DNN Training ,
GPipe: Easy Scaling with Micro-Batch Pipeline Parallelism
学习PyTorch分布式架构的使用
2021/3/2
配置服务器环境,安装anaconda, pytorch, 导入torchgpipe。学习其使用
翻译论文:**torchgpipe: On-the-fly Pipeline Parallelism for Training Giant Models**
2021/2/-2021/2/7
1.查阅分布式深度学习的相关知识
(在对分布式深度学习有一定了解后,再研读论文,有一定的思路。)
‘’它使用同步随机梯度下降和流水线并行的方式进行训练,适用于任何由多个有序的层组成的深度神经网络(Deep Neural Networks, DNN)。 Gpipe通过跨不同的加速器来分割模型,并自动将一小批训练示例划分成更小 ...
Hexo 写一篇博客
欢迎来到 Hexo!这是您的第一篇文章。查看文档以获取更多信息。如果在使用Hexo时遇到任何问题,可以在故障排除中找到答案,或者可以在GitHub上问我。
快速开始创建一篇新文章1hexo new "My New Post"
更多信息:Writing
预览1hexo server
更多信息: Server
生成静态文件1hexo generate
更多信息: Generating
部署到远程站点1hexo deploy
更多信息: Deployment