Pytorch深度学习实践第六讲 逻辑回归

Pytorch深度学习实践第六讲

B站 刘二大人 传送门 逻辑回归

一直在找能入门的Pytorch教程,之前在看文档,但苦于没有讲解而且是在家里学习起来着实困难,还好找到了刘二大人的教程,感谢老师。一边学一边写了写代码,中间也遇到一些问题,百度过也问过别人,下面按照课程顺序把写过的代码放上来,也算是交作业了吧。欢迎交流和探讨。

本节只用了简单数据集进行逻辑回归,搭配课程观看效果最佳。

2020.11.03【更新课件下载链接】
链接:https://pan.baidu.com/s/1vZ27gKp8Pl-qICn_p2PaSw
提取码:cxe4

import torch
import torch.nn.functional as F
import matplotlib.pyplot as plt
import numpy as np

#---数据集
x_data = torch.Tensor([[1.0],[2.0],[3.0]])
y_data = torch.Tensor([[0],[0],[1]])
#---数据集

#---设计模型
class LogisticRegressionModel(torch.nn.Module):
    def __init__(self):
        super(LogisticRegressionModel, self).__init__()
        self.linear = torch.nn.Linear(1, 1) #输入输出都是1维

    def forward(self, x):
        y_pred = F.sigmoid( self.linear(x) ) #线性运算然后激活
        return y_pred
model = LogisticRegressionModel()
#---设计模型

#---计算损失和更新
criterion = torch.nn.BCELoss(size_average=False)
optimizer = torch.optim.SGD(model.parameters(), lr = 0.01)
#---计算损失和更新

loss_list = []
epoch_list = []

#---训练
for epoch in range(1000):
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)

    loss_list.append(loss)
    epoch_list.append(epoch)#绘图用

    print(epoch, loss.item())

    optimizer.zero_grad()
    loss.backward()
    optimizer.step() #更新权重
#---训练

print('w= ', model.linear.weight.item())
print('b = ',model.linear.bias.item())#输出参数

x_test = torch.Tensor([[4]])
y_test = model(x_test)
print('y_pred = ',y_test.data)#测试预测

plt.plot(epoch_list, loss_list)
plt.xlabel('epoch')
plt.ylabel('loss')
plt.show()#绘图

x = np.linspace(0, 10, 200)
x_t = torch.Tensor(x).view((200, 1))
y_t = model(x_t)
y = y_t.data.numpy()
plt.plot(x, y)
plt.plot([0,10], [0.5, 0.5], c = 'r')
plt.xlabel('Hours')
plt.ylabel('P')
plt.grid()
plt.show()#用已得到参数预测绘图
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值