Python——torch构建神经网络(基础)

一.构建神经网络

neu=torch.nn.Sequential(  #创建神经网络,储存到变量中
    torch.nn.Linear(input_size,hidden_size),
    torch.nn.Sigmoid(),
    torch.nn.Linear(hidden_size,output_size),
)

二.建立损失函数和优化器

cost=torch.nn.MSELoss()
optimizer=torch.optim.SGD(
    neu.parameters(),  #神经网络的各项参数,包括权重和偏置
    lr=0.01  #学习率
)

三.对神经网络进行分批次的训练

#神经网络训练循环
for i in range(2000):
    batch_loss=[]  #记录每一批的损失
    #start和end分别是提取一个batch上标和下标
    for start in range(0, len[x], batch_size):
        end=start+batch_size if start+batch_size<len(X) else len(X)
        xx=Variable(torch.FloatTensor(X[start:end]))  #一批特征属性数据
        yy=Variable(torch.FloatTensor(Y[start:end]))  #一批目标属性数据
        predict=neu(xx)  #模型预测
        loss=cost(predict,yy)  
        optimizer.zero_grad()  #将优化器存储的哪些参数的梯度设置为0
        loss.backward()  #开始反向传播计算所有梯度值
        optimizer.step()  #优化器开始运行一步更新所有的参数
        batch_loss.append(loss.data.numpy()) 
        
        #每隔100步输出一下损失值(loss)
        if i%100==0:
            losses.append(np.mean(batch_loss))
            print(i,np.mean(batch_loss))

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值