摘要: 简介 神经网络的并行训练通常需要数据并行和模型并行。数据并行的常见方法涉及每个minibatch中模型参数的通信。该文献采用了不同的数据并行方法:在不同机器上运行多个SGD进程,每隔一段时间对模型参数进行平均并将平均后的模型参数分发到每台机器上。这对于大规模语音识别系统训练来说十分高效,但必须使用自然梯度随机梯度下降(natural gradient stochastic descent,NG-S... 阅读全文
posted @ 2020-08-31 09:01 JarvanWang 阅读(617) 评论(0) 推荐(0) 编辑
摘要: 在线自然梯度 对于任意对称矩阵Σ,存在一个特征值分解(eigenvalue decomposition,EVD): 然后,输出将等于: 对方差的低秩近似 低秩近似 也可表示为: ... 阅读全文
posted @ 2020-08-31 08:57 JarvanWang 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 简介 随机梯度下降 一般梯度(最陡下降方向) 当参数面具有隐含的特定结构时,最陡的方向并非一般梯度,而是自然梯度。 在欧几里得正交空间中,G是单位矩阵I。 自然梯度 自然梯度表示延着雷曼(Riemannian)参数面的梯度迈出一步,这相当于在常规参数空间的一条弯曲路径,并且很难计算。 《基于自然梯... 阅读全文
posted @ 2020-08-31 08:55 JarvanWang 阅读(565) 评论(1) 推荐(0) 编辑
摘要: 对参数进行扰动 在Kaldi nnet3的以下单元测试代码中 nnet3/attention-test.cc kaldi::nnet3::attention::TestAttentionForwardBackward nnet3/convolution-test.cc kaldi::nnet3::time_height_convolution::TestDataBackprop kaldi:... 阅读全文
posted @ 2020-03-31 17:57 JarvanWang 阅读(270) 评论(0) 推荐(0) 编辑
摘要: CUDA类转换为CPU类 示例1 CuMatrix A(RandInt(1, 50), RandInt(1, 50)); A.SetRandn(); Matrix A2(A);示例2 CuMatrix A(RandInt(1, 50), RandInt(1, 50)); A.SetRandn(); Matrix A2(); A.CopyToMat(A2);代码实现 src/matrix... 阅读全文
posted @ 2019-10-29 15:55 JarvanWang 阅读(671) 评论(0) 推荐(0) 编辑
摘要: 以AddMat函数为例 Kaldi的CUDA Kernel函数的声明位于cudamatrix/cu-kernels-ansi.h;定义位于cudamatrix/cu-kernels.cu中: src/cudamatrix/cu-kernels-ansi.hextern "C" { //... void cudaD_add_mat(dim3 Gr, dim3 Bl, double alp... 阅读全文
posted @ 2019-10-28 19:37 JarvanWang 阅读(390) 评论(0) 推荐(0) 编辑
摘要: lang language,语言 示例:data/lang Language directory bg binary-grammar,二阶语言模型 示例:data/lang_test_bg_5k Language directory used for test, with big dictionary of 5000 words 用于解码测试的语言目录,其字典为包含5000... 阅读全文
posted @ 2019-07-09 12:00 JarvanWang 阅读(1013) 评论(0) 推荐(0) 编辑
摘要: xconfig示例 num_targets=3766 learning_rate_factor=20 dir=`mktemp -d` mkdir -p $dir/configs cat $dir/configs/network.xconfig input dim=71 name=input attention-relu-renorm-layer name=attention1 num-he... 阅读全文
posted @ 2019-06-25 18:05 JarvanWang 阅读(1565) 评论(0) 推荐(0) 编辑
摘要: 用处 基于SVD实现模型压缩以适配低功耗平台 根据nnet3bin/nnet3-copy,nnet3-copy或nnet3-am-copy的"--edits-config"参数中,新支持了以下选项: apply-svd name= bottleneck-dim= 查找所有名字与匹配的组件,类型需要是AffineComponent或其子类。如果小于组件的输入或输出维数,则对组件... 阅读全文
posted @ 2019-06-21 11:41 JarvanWang 阅读(1754) 评论(1) 推荐(1) 编辑
摘要: Interspeech 2014 Learning Small-Size DNN with Output-Distribution-Based Criteria 简述 为了减小离线模型(比如用于嵌入式设备)的大小,可以减小每个隐层的节点数或者减小输出层的目标节点数。 减小每个隐层的节点数 教师模型(L)与学生模型(S)之间的KL散度为: 训练流程为: 使用带... 阅读全文
posted @ 2019-05-30 16:49 JarvanWang 阅读(474) 评论(0) 推荐(0) 编辑