PyTorch 深度学习实践 第6讲 逻辑斯蒂回归(logistic)

B站--刘二大人《PyTorch深度学习实践》完结合集  06.逻辑斯蒂回归

 PPT 链接:网盘          提取码:cxe4

目录

1.数据集

MNIST Dataset

CIFAR-10

  2.logistic function

tips


1.数据集

MNIST Dataset

0-9,类别特征  P(0)~P(9)

 

 mnist调用代码示例:

import torchvision   #提供相应数据集,数据集需要下载

train_set = torchvision.datasets.MINIST(root='.../dataset/mnist', train=True, download=True)
test_set = torchvision.datasets.MINIST(root='.../dataset/mnist', train=True, download=True)
CIFAR-10

32*32 的图片

  2.logistic function

  

  •  logistic 函数的输出结果是一个分布,概率在[0,1]之间

tips:

  • sigmoid function

 需满足

  1. 函数值有极限
  2. 单调的增函数
  3. 饱和函数                                     logistic function 是 sigmoid function 中最具有典型性的函数

 例:  

  • MSE----计算的是两个实数值之间的差值

import torch
import torch.nn.functional as F   #functional中包含sigmoid函数,
import numpy as np
import matplotlib.pyplot as plt

#---------------------------------------------------------# 准备数据
 
x_data = torch.Tensor([[1.0], [2.0], [3.0]])
y_data = torch.Tensor([[0], [1], [1]])
 
 #---------------------------------------------------------# 设计模型

class LogisticRegressionModel(torch.nn.Module):
    #  西格玛函数中没有参数,所以不需要初始化,可以直接调用
    def __init__(self):
        super(LogisticRegressionModel, self).__init__()
        self.linear = torch.nn.Linear(1, 1)
        
    def forward(self, x):
        y_pred = F.sigmoid(self.linear(x))
        return y_pred
  
model = LogisticRegressionModel()

#---------------------------------------------------------# loss,优化器

criterion = torch.nn.BCELoss(size_average=False)   #BCELoss--->交叉熵损失
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

#---------------------------------------------------------# 训练
 
for epoch in range(1000):
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    if epoch % 50 == 0:
        print(epoch, loss.item())
 
    
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

#---------------------------------------------------------# 
 
# 测试

x = np.linspace(0, 10, 200)       # 返回0-10等间距的200个数

x_t = torch.Tensor(x).view((200, 1))     # reshape成一个200行1列的矩阵tensor
y_t = model(x_t)    # 传入模型进行测试

y = y_t.data.numpy()        # 调用numpy将y_t变成n维数组         

plt.plot(x, y)                           # 绘图
plt.plot([0, 10], [0.5, 0.5], c='r')     # 图2——这是y=0.5那条横线
plt.xlabel('Hours')
plt.ylabel('Probability of Pass')
plt.grid()
plt.show()
 
 

参考链接:

pytorch 深度学习实践 第6讲 逻辑斯蒂回归_会游泳的小雁的博客-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值