亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

機器學習-線性回歸-使用gluon

標簽:
機器學習

代码来自: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后代码明显更精简了。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消