100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > DL框架之MXNet :神经网络算法简介之MXNet 常见使用方法总结(神经网络DNN CNN RNN

DL框架之MXNet :神经网络算法简介之MXNet 常见使用方法总结(神经网络DNN CNN RNN

时间:2018-09-20 08:24:38

相关推荐

DL框架之MXNet :神经网络算法简介之MXNet 常见使用方法总结(神经网络DNN CNN RNN

DL框架之MXNet :神经网络算法简介之MXNet 常见使用方法总结(神经网络DNN、CNN、RNN算法)之详细攻略(个人使用)

相关文章

DL框架之MXNet :深度学习框架之MXNet 的简介、安装、使用方法、应用案例之详细攻略

目录

MXNet 常见使用方法

1、关于GPU、CPU运算

MXNet 常见进阶使用方法

MXNet 常见高阶使用方法

MXNet 常见使用方法

1、关于GPU、CPU运算

1、目前MxNet支持相同平台下的变量运算,如果一个变量在GPU一个变量在CPU,则需要通过copyto之类的方式来统一。

MxNet中,可以通过gpu_device=mx.gpu()来创建GPU的context。下边的方式是切换到GPU上执行运算。

gpu_device=mx.gpu() # Change this to mx.cpu() in absence of GPUs.def f():a = mx.nd.ones((100,100))b = mx.nd.ones((100,100))c = a + bprint(c)# in default mx.cpu() is usedf()# change the default context to the first GPUwith mx.Context(gpu_device):f()

2、参数同步:当我们使用多个GPU来训练模型时,gluon.Trainer会自动做数据并行,例如划分小批量数据样本并复制到各个GPU上,对各个GPU上的梯度求和再广播到所有GPU上。这样,我们就可以很方便地实现训练函数了。

loss = gloss.SoftmaxCrossEntropyLoss()def train(num_gpus, batch_size, lr):train_iter, test_iter = gb.load_data_fashion_mnist(batch_size)ctx = [mx.gpu(i) for i in range(num_gpus)]print('running on:', ctx)net.initialize(init=init.Normal(sigma=0.01), ctx=ctx, force_reinit=True) # 网络初始化于各个设备trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': lr}) # 优化器会自动识别net对象的设备列表for epoch in range(1, 6):start = time()for X, y in train_iter:gpu_Xs = gutils.split_and_load(X, ctx) # 数据划分到各个设备gpu_ys = gutils.split_and_load(y, ctx)with autograd.record():ls = [loss(net(gpu_X), gpu_y) for gpu_X, gpu_y in zip(gpu_Xs, gpu_ys)] # 记录各个设备的损失函数for l in ls:l.backward() # 各个设备分别反向传播trainer.step(batch_size) # 优化时自动同步各个设备参数nd.waitall()print('epoch %d, training time: %.1f sec'%(epoch, time() - start))test_acc = gb.evaluate_accuracy(test_iter, net, ctx[0])print('validation accuracy: %.4f'%(test_acc))train(num_gpus=2, batch_size=512, lr=0.3)

参考文章

『MXNet』第七弹_多GPU并行程序设计

MXNet 常见进阶使用方法

后期继续更新……

1、CNN算法

executor = sym.simple_bind(ctx = mx.cpu(), **input_shapes) executor.forward() #前向运行excutor.backward() #后向运行executor.outputs[0].asnumpy()

sym.simple_bind方法

MXNet 常见高阶使用方法

后期继续更新……

DL框架之MXNet :神经网络算法简介之MXNet 常见使用方法总结(神经网络DNN CNN RNN算法)之详细攻略(个人使用)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。