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

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

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 + b

   print(c)

# in default mx.cpu() is used

f()

# change the default context to the first GPU

with 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 常见高阶使用方法


后期继续更新……







相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
2月前
|
机器学习/深度学习 编解码 PyTorch
Pytorch实现手写数字识别 | MNIST数据集(CNN卷积神经网络)
Pytorch实现手写数字识别 | MNIST数据集(CNN卷积神经网络)
|
3月前
|
机器学习/深度学习 算法 TensorFlow
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
63 0
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
|
4月前
|
机器学习/深度学习
CNN卷积神经网络手写数字集实现对抗样本与对抗攻击实战(附源码)
CNN卷积神经网络手写数字集实现对抗样本与对抗攻击实战(附源码)
39 0
|
1天前
|
机器学习/深度学习 算法 Python
Python用RNN神经网络:LSTM、GRU、回归和ARIMA对COVID19新冠疫情人数时间序列预测
Python用RNN神经网络:LSTM、GRU、回归和ARIMA对COVID19新冠疫情人数时间序列预测
33 12
|
7天前
|
机器学习/深度学习 数据采集 TensorFlow
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
25 0
|
1月前
|
机器学习/深度学习 自然语言处理 并行计算
神经网络结构——CNN、RNN、LSTM、Transformer !!
神经网络结构——CNN、RNN、LSTM、Transformer !!
132 0
|
5月前
|
机器学习/深度学习 算法 数据库
m基于GA-CNN遗传优化卷积神经网络的手势识别算法matlab仿真
m基于GA-CNN遗传优化卷积神经网络的手势识别算法matlab仿真
71 1
|
1月前
|
机器学习/深度学习 编解码 人工智能
一篇文章搞懂CNN(卷积神经网络)及其所含概念
一篇文章搞懂CNN(卷积神经网络)及其所含概念
72 0
一篇文章搞懂CNN(卷积神经网络)及其所含概念
|
2月前
|
机器学习/深度学习 算法 TensorFlow
基于 Python中的深度学习:神经网络与卷积神经网络
基于 Python中的深度学习:神经网络与卷积神经网络
|
3月前
|
机器学习/深度学习 算法 PyTorch
简单讲解CNN(卷积神经网络)
简单讲解CNN(卷积神经网络)
33 1

热门文章

最新文章