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


后期继续更新……







相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
212 7
|
1月前
|
机器学习/深度学习 自然语言处理 算法
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
46 1
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
本文旨在通过深入浅出的方式,为读者揭示卷积神经网络(CNN)的神秘面纱,并展示其在图像识别领域的实际应用。我们将从CNN的基本概念出发,逐步深入到网络结构、工作原理以及训练过程,最后通过一个实际的代码示例,带领读者体验CNN的强大功能。无论你是深度学习的初学者,还是希望进一步了解CNN的专业人士,这篇文章都将为你提供有价值的信息和启发。
|
1月前
|
机器学习/深度学习 人工智能 网络架构
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
49 1
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
|
1月前
|
机器学习/深度学习 数据采集 PyTorch
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
|
1月前
|
机器学习/深度学习 自然语言处理 PyTorch
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
|
1月前
|
机器学习/深度学习 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
45 0

热门文章

最新文章