机器学习笔记(2):线性回归-使用gluon-阿里云开发者社区

开发者社区> 杨俊明> 正文

机器学习笔记(2):线性回归-使用gluon

简介: 代码来自:https://zh.gluon.ai/chapter_supervised-learning/linear-regression-gluon.html 1 from mxnet import ndarray as nd 2 from mxnet import autograd...
+关注继续查看

代码来自:https://zh.gluon.ai/chapter_supervised-learning/linear-regression-gluon.html

 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())

相对上一篇纯手动的处理方式,用gluon后代码明显更精简了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
前端走进机器学习生态,在 Node.js 中使用 Python
从今天开始,你就可以开始看着 Python 的文档,使用 JavaScript 来“学习和使用”机器学习和深度学习了!
1734 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
8428 0
吴恩达机器学习 Coursera 笔记(二) - 单变量线性回归(中)
吴恩达机器学习 Coursera 笔记(二) - 单变量线性回归
17 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12069 0
台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression
上一节课,我们介绍了Linear Regression线性回归,以及用平方错误来寻找最佳的权重向量w,获得最好的线性预测。本节课将介绍Logistic Regression逻辑回归问题。
26 0
吴恩达机器学习 Coursera 笔记(二) - 单变量线性回归(下)
吴恩达机器学习 Coursera 笔记(二) - 单变量线性回归
4 0
机器学习之使用sklearn构造决策树模型
机器学习之使用sklearn构造决策树模型一、任务基础导入所需要的库 1234import matplotlib.pyplot as pltimport pandas as pd %matplotlib inline加载sklearn内置数据集 ,查看数据描述 123from sklearn.
719 0
+关注
杨俊明
菩提树下的杨过 http://yjmyzz.cnblogs.com/
1105
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载