MMdnn:微软模型转换工具 简介深度学习火了,一同热的还有深度学习框架。当然经过了几年的淘汰(比如theano),目前最火的大概有Tensorflow、PyTorch以及Caffe了。他们各有所长,开发时可能会选定一个单独的平台,但是在应用时就需要考虑其他的因素。重新在其他框架上改代码就变得比较麻烦,如果能把模型直接转换好,更重要的是不同平台效果相同,那就会节省很多时间。MMdnn就是这样的一个模型转换工具,而且是微软出品...
Jetson AGX Xavier JetPack 4.2环境配置 Jetson AGX Xavier 去年,NVIDIA在苏州举办了GTC China大会上发布的AI计算平台,主要用于移动端的计算。想法美好,不过配起来环境还是遇到了很多问题,一些是软件,另一些甚至还有硬件。设备需求Jetson AGX Xavier(当然)显示器(两台,一个给host主机,一个给Xavier平台,配套的hdmi线)网线(也要备两根)键鼠(一套就行,主要工作在host上...
ReLeQ:一种自动强化学习的神经网络深度量化方法 ReLeQ:一种自动强化学习的神经网络深度量化方法ReLeQ: An Automatic Reinforcement Learning Approach for Deep Quantization of Neural Networks量化作为压缩的一种重要手段被广泛应用,而位宽和准确率的矛盾也始终存在。目前解决的方法有如CLIP-Q中的贝叶斯优化器,确定位宽。另一个问题是量化值的选取,在L...
Distiller:正则化 Regularization正则化在Deep Learning1书中,是这么定义正则化的:“any modification we make to a learning algorithm that is intended to reduce its generalization error, but not its training error.”PyTorch的 优化器使用l2...
Distiller:量化算法 Quantization Algorithms量化算法注意:对于任何需要量化感知训练的以下方法,请参阅这里,了解如何使用Distiller的机制调用它。基于范围的线性量化(Range-Based Linear Quantization)让我们在此分解使用的术语:线性(Linear): 表示通过乘以数字常数(比例因子)来量化浮点值。基于范围(Range-Based): 意味着为了...
Distiller:神经网络压缩研究框架 Distiller是由Intel AI Lab维护的基于PyTorch的开源神经网络压缩框架。主要包括:用于集成剪枝(pruning),正则化(regularization)和量化(quantization )算法的框架。一套用于分析和评估压缩性能的工具。现有技术压缩算法的示例实现。这算是目前我发现的最完整的压缩框架了,比较适合科研工作。下面简单说一下安装和使用。NervanaSy...
Tensorflow 静态图的动态收缩 Tensorflow 的静态图机制给一个动态调整区间和mask的网络带来了不少麻烦。问题描述随着训练的进行,扩大区间rrr的范围,并对区间内的权重进行量化操作。一次训练可能要量化多个区间,量化后权重冻结。静态图思路权重冻结这是一个老问题,之前的文章中也有介绍。解决方法还是:def entry_stop_gradients(target, mask): mask = tf.cas...
Tensorflow 静态图的动态收缩 Tensorflow 的静态图机制给一个动态调整区间和mask的网络带来了不少麻烦。问题描述随着训练的进行,扩大区间rrr的范围,并对区间内的权重进行量化操作。一次训练可能要量化多个区间,量化后权重冻结。静态图思路权重冻结这是一个老问题,之前的文章中也有介绍。解决方法还是:def entry_stop_gradients(target, mask): mask = tf.cas...
CLIP-Q:先剪枝后量化的压缩框架 In-parallel pruning-quantizationClipping. 设置两个截止点标量c−c−c^-和c+c+c^+,用超参数ppp来确定,使正参数中(p×100)%(p×100)%(p \times 100)\%的参数小于c+c+c^+,同时使负参数中(p×100)%(p×100)%(p\times100)\%的参数大于c−c−c^-。位于c−c−c^-和c+c+c^+之间...
PyTorch 0.4 升级指南 4月25日,PyTorch团队正式发布了0.4.0的release版本。这是在与caffe2合并后的首个稳定版本。其中核心的变化有:Tensor/Variable合并零维张量(标量)volatile标志的弃用dtypes,devices和Numpy型Tensor的创建函数写设备无关的代码下面对其中的升级注意的问题进行说明。 原文参考:PyTorch 0.4.0 Migration G
cannot import name 'ReparseException' & tf模型参数提取 Tensorboard ImportError: cannot import name ‘ReparseException’环境:python 3.5.4Tensorflow==1.4.1html5lib==1.0.1错误信息:ImportError: cannot import name 'ReparseException'定位咋:~/anaconda3/...
tf的条件赋值(量化) 在numpy中一行实现的代码,始终不知道如何在tf中快速实现= =问题对于一个任意维度张量a,使其值在0到1之间的值量化到0.5。Numpy# Input:aa[(a>0)&(a<1)] = 0.5这大概是最简单的实现方式吧。TensorFlow而在tf中,每一步操作都需要Tensor实现,那么我所找到的一种方法:greater = a>0less = a<1greater_less = tf
python list 复制拷贝问题 大概python绕不开这个小小的问题。。很简单不过还是记录一下吧。问题my_list = [ ... ]new_list = my_list 这样的操作并不会获得一个my_list的副本,而是会让new_list也“指向”my_list,共享内容。my_list = [ 1 ,2 ,3 ]new_list = my_list new_list[0] = 0print(new_list, my
center loss 论文学习 center loss框架从网络的的框架来看,center loss的主要工作是下图中的“Discriminative Features”。 普通的网络框架,在反向传播的过程中,根据类别标签,会将不同的类别划分开。如“Separable Features”所示,一开始两种颜色是混杂的,通过改变网络参数,让不同颜色能被分类器分开,就达到了目的。而这个过程中,只对不同类有要求,同一类没有进行约束。
DeepCompression思考 网上很少有Deepcompress的实现源码,前一段时间使用TensorFlow实现了一下,还是有些问题值得注意。TensorFlow的局限性TensorFlow支持的是一种静态图,当模型的参数确定之后,便无法继续修改。这对于逐阶段、分层的训练带来了一定的困难。具体在本项目中,权重的固定无法在单次模型训练中进行逐层的设置,只能采取一种比较麻烦的方法:量化完某一层后,先保存全局模型权重,然后清空Ten
清华源apt-get update 0% 本来以为是个小问题,结果查了半天没解决= =系统环境:Ubuntu 16.04.3 LTS(基于docker)切换apt为清华源Ubuntu 镜像使用帮助: Ubuntu 的软件源配置文件是/etc/apt/sources.list。将系统自带的该文件做个备份,将该文件替换为下面内容,即可使用 TUNA 的软件源镜像。# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
综述论文:当前深度神经网络模型压缩和加速方法速览 A Survey of Model Compression and Acceleration for Deep Neural Networks研究背景在神经网络方面,早在上个世纪末,Yann LeCun等人已经使用神经网络成功识别了邮件上的手写邮编。至于深度学习的概念是由Geoffrey Hinton等人首次提出,而在2012年,Krizhevsky等人采用深度学习算法,以超过第二名以传统人工设计
keras tips&problems 写了一下keras的层,出现了一些问题,值得总结一下~Python中对变量是否为None的判断这个问题出在以下代码段:self.mask = np.zeros(shape)if self.mask == None: passelse: pass直接运行会报错,原因在于对于numpy数组,对None的判断是对于其中元素的,而不是对于mask这个对象的。如果比较相同的对象实例,is总是
CS20SI Operations CS 20SI: Tensorflow for Deep Learning ResearchFun with TensorBoardgraph 的可视化,语句为tf.summary.FileWriter,将sess的图输出到./graphs。首先在默认图中建立常数与操作,并在session中运行。import tensorflow as tfa = tf.constant(2)b = tf.co