(刘二大人)PyTorch深度学习实践-Logistic回归实现

本文通过PyTorch实现Logistic回归,对比不同学习率(lr=0.01, 0.1)的效果,发现lr=0.1时结果更优。进一步引入动量优化,观察到模型收敛更快,损失更低,预测精度显著提高。" 112053361,10542416,VS2010 MFC工程C2061错误:未声明的DWORD_PTR和LONG_PTR,"['C++', 'MFC', 'Visual Studio']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.代码实现(lr=0.01)

import numpy as np
import torch
import torch.nn.functional as F
from torch.utils.tensorboard import SummaryWriter

#使用tensorboard进行记录
writer = SummaryWriter(log_dir='../LEDR')

#准备数据集
x_data = torch.Tensor([[1.0],[2.0],[3.0]])
y_data = torch.Tensor([[0],[0],[1]])#二分类问题,预测的是种类数

#搭建网络
class LogisticModel(torch.nn.Module):
    def __init__(self):
        super(LogisticModel, self).__init__()
        self.linear = torch.nn.Linear(1,1)

    def forward(self,x):
        y_pred = F.sigmoid(self.linear(x))#在线性回归后再使用一个逻辑回归函数
        return y_pred

model = LogisticModel()

#损失和优化函数
criterion = torch.nn.BCELoss(size_average=False)
optimizer = torch.optim.SGD(params=model.parameters(),lr = 0.01)

#进行训练
for epoch in range(1000):
    y_pred = model.forward(x_data)
    #计算、打印损失
    l = criterion(y_pred,y_data)
    writer.add_scalar('LogisticLoss1',l.item(),epoch)
    print("Epoch:",epoch,l.item())

    #梯度归零、反馈、更新
    optimizer.zero_grad()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值