线性回归的简单实现-mxnet


#构建数据集
from mxnet import autograd, nd   #引入自动求导和n维数组

num_inputs = 2
num_examples = 1000
true_w = [2, -3.4]
true_b = 4.2
features = nd.random.normal(scale=1, shape=(num_examples, num_inputs))
labels = true_w[0] * features[:, 0] + true_w[1] * features[:, 1] + true_b
labels += nd.random.normal(scale=0.01, shape=labels.shape)

from mxnet.gluon import data as gdata       
batch_size=10
dataset=gdata.ArrayDataset(features,labels)  #将特征和标签组合
data_iter=gdata.DataLoader(dataset,batch_size,shuffle=True)  #提取子数据集

from mxnet.gluon import nn
net=nn.Sequential()      #引入神经网络的实例

net.add(nn.Dense(1))     #添加一个全连接层

from mxnet import init    #引入初始化模块
net.initialize(init.Normal(sigma=0.01))   #将网络参数按正态分布初始化

from mxnet.gluon import loss as gloss    #引入损失函数模块,定义损失为L2范数损失
loss=gloss.L2Loss()

  
from mxnet import gluon       #引入gluon模块
trainer = gluon.Trainer(net.collect_params(),'sgd',{'learning_rate':0.03})
##我们创建一个Trainer实例,实例是为了优化net中的参数,参数通过net.collect_params()获取,并指定学习率为0.03,优化算法为小批量随机梯度下降(sgd)算法。该优化算法将用来迭代net实例所有通过add函数嵌套的层所包含的全部参数。##

net[0].weight.data()  #查看第一层的权重
net[0].bias.data() #查看第一层的偏置
net[0].grad.data()#查看第一层的梯度

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值