线性回归(MXNet gluon)

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


# 1. 处理数据
num_inputs = 2
num_examples = 1000

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[1]*x[:, 1]+true_b
y += .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_b)

# 2. 建立模型
net = gluon.nn.Sequential()
# 添加一层全连接层
net.add(gluon.nn.Dense(1))
net.initialize()
print(net)

# 3. 损失函数和优化器
squeare_loss = gluon.loss.L2Loss()
trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': 0.1})

# 4. 循环训练
epoch = 100
for e in range(epoch):
    total_loss = 0
    for data, label in data_iter:
        with autograd.record():
            output = net(data)
            loss = squeare_loss(output, label)
        loss.backward()
        trainer.step(batch_size)
        total_loss += nd.sum(loss).asscalar()
    print("Epoch %d, average loss: %f" % (e+1, total_loss/num_examples))

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值