MXNet学习3——Symbol

概要

本节介绍MXNet中的Symbol(模块)。Symbol是MXNet中另一个重要的概念,可以通过 mxnet.symbol 或者 mxnet.sym 使用。一个symbol表示一个具有多输出的符号表达式,表达式由多个运算组成,运算可以是简单的矩阵和(“+”),也可以是一个神经网络层(比如卷积层)。一个运算可以有多个输入,产生一个或多个输出,同时也可以由隐变量。变量可以是一个等待绑定参数值的自由符号,也可以是其他symbol的某一个输出值。

MXNet中重要概念NDArray与numpy类似,操作上也比较简单就不单独说明了,之后代码中遇到会提及。另外,本节代码跳过了官方tutorial中存储部分以及卷积神经网络部分,有些说明部分没有摘录,感兴趣请参考官方教程

正文

基础操作

import mxnet as mx
###构造一个简单的表达式 a+b
a = mx.sym.Variable('a')
b = mx.sym.Variable('b')
###c没有人为指定名称,MXNet会自动命名一个不重复的名称,注意不一定是"C"
c = a + b

###下方的操作类似numpy
# elemental wise times
d = a * b  
# matrix multiplication
e = mx.sym.dot(a, b)   
# reshape
f = mx.sym.Reshape(d+e, shape=(1,4))  
# broadcast
g = mx.sym.broadcast_to(f, shape=(2,4)) 

mx.viz.plot_network(symbol=g).view()

这里写图片描述

基础神经网络

除了上述基本的操作之外,Symbol还有一系列神经网络层,下面的代码构造了一个两层全连接的神经网络

###以下神经网络比较简单,就不单独说明了,其中relu是激活函数
# Output may vary
net = mx.sym.Variable('data')
net = mx.sym.FullyConnected(data=net, name='fc1', num_hidden=128)
net = mx.sym.Activation(data=net, name=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值