小标
2018-12-18
来源 :
阅读 1194
评论 0
摘要:本文主要向大家介绍了机器学习入门之机器学习-线性回归-使用gluon,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
本文主要向大家介绍了机器学习入门之机器学习-线性回归-使用gluon,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
1 from mxnet import ndarray as nd
2 from mxnet import autograd
3 from mxnet import gluon
4
5 num_inputs = 2
6 num_examples = 1000
7
8 true_w = [2, -3.4]
9 true_b = 4.2
10
11 X = nd.random_normal(shape=(num_examples, num_inputs)) #1000行,2列的数据集
12 y = true_w[0] * X[:, 0] + true_w[1] * X[:, 1] + true_b #已知答案的结果
13 y += .01 * nd.random_normal(shape=y.shape) #加入噪音
14
15 #1 随机读取10行数据
16 batch_size = 10
17 dataset = gluon.data.ArrayDataset(X, y)
18 data_iter = gluon.data.DataLoader(dataset, batch_size, shuffle=True)
19
20 #2 定义回归模型
21 net = gluon.nn.Sequential()
22 net.add(gluon.nn.Dense(1))
23
24 #3 参数初始化
25 net.initialize()
26
27 #4 损失函数
28 square_loss = gluon.loss.L2Loss()
29
30 #5 指定训练方法
31 trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': 0.1})
32
33 #6 训练
34 epochs = 5
35 batch_size = 10
36 for e in range(epochs):
37 total_loss = 0
38 for data, label in data_iter:
39 with autograd.record():
40 output = net(data)
41 loss = square_loss(output, label)
42 loss.backward()
43 trainer.step(batch_size)
44 total_loss += nd.sum(loss).asscalar()
45 print("Epoch %d, average loss: %f" % (e, total_loss/num_examples))
46
47 #7 输出结果
48 dense = net[0]
49 print(true_w)
50 print(dense.weight.data())
51 print(true_b)
52 print(dense.bias.data())
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号