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


后期继续更新……







相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
11月前
|
机器学习/深度学习 编解码 自动驾驶
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
482 3
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
|
4月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
135 1
|
6月前
|
机器学习/深度学习 人工智能 算法
AI-Compass RLHF人类反馈强化学习技术栈:集成TRL、OpenRLHF、veRL等框架,涵盖PPO、DPO算法实现大模型人类价值对齐
AI-Compass RLHF人类反馈强化学习技术栈:集成TRL、OpenRLHF、veRL等框架,涵盖PPO、DPO算法实现大模型人类价值对齐
 AI-Compass RLHF人类反馈强化学习技术栈:集成TRL、OpenRLHF、veRL等框架,涵盖PPO、DPO算法实现大模型人类价值对齐
|
4月前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
231 0
|
6月前
|
机器学习/深度学习 人工智能 算法
AI-Compass 强化学习模块:理论到实战完整RL技术生态,涵盖10+主流框架、多智能体算法、游戏AI与金融量化应用
AI-Compass 强化学习模块:理论到实战完整RL技术生态,涵盖10+主流框架、多智能体算法、游戏AI与金融量化应用
|
9月前
|
机器学习/深度学习 人工智能 JSON
这个AI把arXiv变成代码工厂,快速复现顶会算法!Paper2Code:AI论文自动转代码神器,多智能体框架颠覆科研复现
Paper2Code是由韩国科学技术院与DeepAuto.ai联合开发的多智能体框架,通过规划、分析和代码生成三阶段流程,将机器学习论文自动转化为可执行代码仓库,显著提升科研复现效率。
1281 19
这个AI把arXiv变成代码工厂,快速复现顶会算法!Paper2Code:AI论文自动转代码神器,多智能体框架颠覆科研复现
|
11月前
|
机器学习/深度学习 编解码 自动驾驶
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
396 16
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
|
11月前
|
机器学习/深度学习 存储 大数据
RT-DETR改进策略【Backbone/主干网络】| ICLR-2023 替换骨干网络为:RevCol 一种新型神经网络设计范式
RT-DETR改进策略【Backbone/主干网络】| ICLR-2023 替换骨干网络为:RevCol 一种新型神经网络设计范式
372 11
RT-DETR改进策略【Backbone/主干网络】| ICLR-2023 替换骨干网络为:RevCol 一种新型神经网络设计范式
|
11月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
|
11月前
|
机器学习/深度学习 存储 大数据
YOLOv11改进策略【Backbone/主干网络】| ICLR-2023 替换骨干网络为:RevCol 一种新型神经网络设计范式
YOLOv11改进策略【Backbone/主干网络】| ICLR-2023 替换骨干网络为:RevCol 一种新型神经网络设计范式
384 0
YOLOv11改进策略【Backbone/主干网络】| ICLR-2023 替换骨干网络为:RevCol 一种新型神经网络设计范式

热门文章

最新文章