mxnet深度学习(KVS)
mxnet深度学习(KVS)
分布式的键值对的存储(Ditstributed Key-value Store)
初始化
>>> kv = mx.kv.create('local') # create a local kv store. >>> shape = (2,3) >>> kv.init(3, mx.nd.ones(shape)*2) >>> a = mx.nd.zeros(shape) >>> kv.pull(3, out = a) >>> print a.asnumpy() [[ 2. 2. 2.] [ 2. 2. 2.]]
我们把一个2x3的矩阵存在序号为3的地方,并把它从kv里面取出来。
压入,聚合,更新
>>> kv.push(3, mx.nd.ones(shape)*8) >>> kv.pull(3, out = a) # pull out the value >>> print a.asnumpy() [[ 8. 8. 8.] [ 8. 8. 8.]]
用来压入的数据可以来自于任何设备上。另外,我们可以压入几个值在同一个键上,在这里KVStore将首先把这些值加起来然后把这些聚合的值给压入。
>>> gpus = [mx.gpu(i) for i in range(4)] >>> b = [mx.nd.ones(shape, gpu) for gpu in gpus] >>> kv.push(3, b) >>> kv.pull(3, out = a) >>> print a.asnumpy() [[ 4. 4. 4.] [ 4. 4. 4.]]
这里,我们生成了4个全为1的矩阵从4个gpu里面,然后把他们压入到同一个键里面,因为被压入4次,相当于被求和了4次,所以显示的结果是每个元素都为4.
>>> def update(key, input, stored): >>> print "update on key: %d" % key >>> stored += input * 2 >>> kv._set_updater(update) >>> kv.pull(3, out=a) >>> print a.asnumpy() [[ 4. 4. 4.] [ 4. 4. 4.]] >>> kv.push(3, mx.nd.ones(shape)) update on key: 3 >>> kv.pull(3, out=a) >>> print a.asnumpy() [[ 6. 6. 6.] [ 6. 6. 6.]]
提取
>>> b = [mx.nd.ones(shape, gpu) for gpu in gpus] >>> kv.pull(3, out = b) >>> print b[1].asnumpy() [[ 6. 6. 6.] [ 6. 6. 6.]]
处理一列的键值对
>>> keys = [5, 7, 9] >>> kv.init(keys, [mx.nd.ones(shape)]*len(keys)) >>> kv.push(keys, [mx.nd.ones(shape)]*len(keys)) update on key: 5 update on key: 7 update on key: 9 >>> b = [mx.nd.zeros(shape)]*len(keys) >>> kv.pull(keys, out = b) >>> print b[1].asnumpy() [[ 3. 3. 3.] [ 3. 3. 3.]]
对于多重设备来说
>>> b = [[mx.nd.ones(shape, gpu) for gpu in gpus]] * len(keys) >>> kv.push(keys, b) update on key: 5 update on key: 7 update on key: 9 >>> kv.pull(keys, out = b) >>> print b[1][1].asnumpy() [[ 11. 11. 11.] [ 11. 11. 11.]]
mxnet深度学习(KVS)相关推荐
- mxnet深度学习(Symbol)
mxnet深度学习(Symbol) 自动标志化区分 NDArray是一个基础的计算单元在MXNet里面的.除此之外,MXNet提供一个标志化的接口,叫做Symbol,为了简化构造神经网络.标志化结合了 ...
- mxnet深度学习(NDArray)
mxnet深度学习(NDArray) MXNet里面的3个主要的概念: NDArray:NDArray提供了矩阵和张量(tensor)运算在CPU和GPU上,通过使用并行运算的技术. Symbol:S ...
- 检验 pytorch,tensorflow,paddle,mxnet 深度学习框架是否正确支持GPU功能
检验 pytorch,tensorflow,paddle,mxnet 深度学习框架是否正确支持GPU功能 1.pytorch 框架 import torch a = torch.cuda.is_ava ...
- MXNET深度学习框架-03-采用ndarray和autograd实现线性回归
采用ndarray和autograd实现线性回归 虽然现在有很多深度学习框架,但它们大多继承了所有的回归/分类任务,我们也只能使用它,无法了解其原理,所以,本文只用ndarray和autograd从0 ...
- MXNET深度学习框架-09-使用正则化方法解决过拟合问题(以从0开始的线性回归为例)
本章我们使用一个高维线性回归的例子来做解决过拟合的问题. 相关公式: y=0.05+∑i=1p0.01xi+noisey=0.05+\sum_{i=1}^p0.01x_i+noise ...
- 【BDTC 2015】深度学习分论坛:DL的图像识别、语音识别应用进展及MxNet开源框架设计
发表于2015-12-15 17:18|4514次阅读| 来源CSDN|0 条评论| 作者王玮 大数据技术大会深度学习论坛 摘要:12月10-12日,2015中国大数据技术大会盛大开幕,11日下午深度 ...
- 深度学习高能干货:手把手教你搭建MXNet框架
导读:相信很多程序员在学习一门新的编程语言或者框架时,都会先了解下该语言或者该框架涉及的数据结构,毕竟当你清晰地了解了数据结构之后才能更加优雅地编写代码,MXNet同样也是如此. 在MXNet框架中你 ...
- 深度学习框架【MxNet】的安装
文章目录 前言 一.MXNet的前世今生 二.mxnet的安装 1.CPU安装 2.GPU安装,以cuda10.1为例 三.报错提醒 前言 本文简介安装mxnet深度学习框架,下边开始对深度学习框架m ...
- 李沐亲授加州大学伯克利分校深度学习课程移师中国,现场资料新鲜出炉
2019 年 9 月 5 日,AI ProCon 2019 在北京长城饭店正式拉开帷幕.大会的第一天,以亚马逊首席科学家李沐面对面亲自授课完美开启! "大神",是很多人对李沐的印象 ...
最新文章
- 排序算法四:归并排序
- 大型神经网络可能初具意识:OpenAI首席科学家引争议,众大佬吵成一团
- Android MIPI转LVDS显示屏调试--- bootloader阶段显示(4)
- LeetCode 2 Keys Keyboard
- JoinGroup的过程
- oracle数据库sql的执行过程,Oracle体系结构之SQL语句的执行过程
- php学历要求_“最好编程语言” PHP面试的两三事
- IDEA 同一个工程下不同模块之间的类相互调用
- android 字体加粗_Android小技巧之TextView字体加粗
- ISO 12233分辨率测试卡是否已经淘汰了?
- C# Newtonsoft的使用
- 逻辑函数的化简-代数法化简
- 异硫氰酸荧光素标记磁性四氧化三铁纳米粒FITC-Hyd-PEG-Fe3O4|近红外染料CY7.5标记纳米二氧化硅CY7.5-SiO2 NPs
- 多列 count(distinct)改写优化
- Activity系列博客5篇
- MVG学习笔记(10) --射影变换的初步了解
- 段永平:你的“不投资”表现至少可以比85%的人好
- 【故障处理】ORA-12545: Connect failed because target host or object does not exist
- Android Studio常用快捷键、插件和功能
- USB的四种传输类型
热门文章
- windows7电脑怎么永久关闭广告
- c++ ea 代码 生成_EA公司教AI制作游戏角色,行动流畅自然,全程无需人类介入
- Websocket——原理及基本属性和方法
- Spring IOC原理总结
- ios跨线程通知_一种基于Metal、Vulkan多线程渲染能力的渲染架构
- php开发工具 debug,php开发性能调试工具xdebug
- 宝塔设置thinkphp的伪静态_宝塔面板与WDCP狭路相逢,谁才是国产之光?
- MySQL 高级 —— 索引实现的思考
- 设计模式---简单工厂设计模式
- idea mysql错误提示_idea提示错误:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver