zoukankan      html  css  js  c++  java
  • 线性回归的简单实现mxnet

     1 #构建数据集
     2 from mxnet import autograd, nd   #引入自动求导和n维数组
     3 
     4 num_inputs = 2
     5 num_examples = 1000
     6 true_w = [2, -3.4]
     7 true_b = 4.2
     8 features = nd.random.normal(scale=1, shape=(num_examples, num_inputs))
     9 labels = true_w[0] * features[:, 0] + true_w[1] * features[:, 1] + true_b
    10 labels += nd.random.normal(scale=0.01, shape=labels.shape)
    11 
    12 from mxnet.gluon import data as gdata       
    13 batch_size=10
    14 dataset=gdata.ArrayDataset(features,labels)  #将特征和标签组合
    15 data_iter=gdata.DataLoader(dataset,batch_size,shuffle=True)  #提取子数据集
    16 
    17 from mxnet.gluon import nn
    18 net=nn.Sequential()      #引入神经网络的实例
    19 
    20 net.add(nn.Dense(1))     #添加一个全连接层
    21 
    22 from mxnet import init    #引入初始化模块
    23 net.initialize(init.Normal(sigma=0.01))   #将网络参数按正态分布初始化
    24 
    25 from mxnet.gluon import loss as gloss    #引入损失函数模块,定义损失为L2范数损失
    26 loss=gloss.L2Loss()
    27 
    28   
    29 from mxnet import gluon       #引入gluon模块
    30 trainer = gluon.Trainer(net.collect_params(),'sgd',{'learning_rate':0.03})
    31 ##我们创建一个Trainer实例,实例是为了优化net中的参数,参数通过net.collect_params()获取,并指定学习率为0.03,优化算法为小批量随机梯度下降(sgd)算法。该优化算法将用来迭代net实例所有通过add函数嵌套的层所包含的全部参数。##
    32 
    33 net[0].weight.data()  #查看第一层的权重
    34 net[0].bias.data() #查看第一层的偏置
    35 net[0].grad.data()#查看第一层的梯度
  • 相关阅读:
    [转]
    Linux
    [转]
    [转]
    Linux 高级网络编程
    [转]
    [译]- 6-1 排列窗体上的控件(Laying Out Widgets on a Form)
    [转]
    [转]
    the thread has exited with code -1073741819
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725321.html
Copyright © 2011-2022 走看看