[MxNet]Lecture01-线性回归的gluon实现

from mxnet import ndarray as nd
from mxnet import autograd
from mxnet import gluon

num_examples=1000
num_inputs=2

true_w=[2,-3.4]
true_b=4.2

x=nd.random_normal(shape=(num_examples,num_inputs))
y=true_w[0]*x[:,0]+true_w[0]*x[:,1]+true_b
y+=0.01*nd.random_normal(shape=y.shape)

batch_size=10
dataset=gluon.data.ArrayDataset(x,y)
data_iter=gluon.data.DataLoader(dataset,batch_size,shuffle=True)

net=gluon.nn.Sequential()
net.add(gluon.nn.Dense(1))
net.initialize()

square_loss=gluon.loss.L2Loss()

trainer=gluon.Trainer(net.collect_params(),'sgd',{'learning_rate':0.1})

epochs=5
batch_size=10

for e in range(epochs):
	total_loss=0
	for data,label in data_iter:
		with autograd.record():
			output=net(data)
			loss=square_loss(output,label)
		loss.backward()
		trainer.step(batch_size) #根据前面的trainer定义,trainer知道模型的参数,这里只需迭代向前一步,不需要之前的sgd
		total_loss+=nd.sum(loss).asscalar()
	print('Epoch: %d , average loss : %f'%(e,total_loss/num_examples))
如果想查看训练出来的weight和bias分别是多少:net[0].weight.data()  net[0].bias.data()

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值