PyTorch学习5《PyTorch深度学习实践》——逻辑回归[对数几率回归](Logistic Regression)

Posted 小龙呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyTorch学习5《PyTorch深度学习实践》——逻辑回归[对数几率回归](Logistic Regression)相关的知识,希望对你有一定的参考价值。

一、基础介绍
Logistic回归准确来说不是回归,而是一个分类方法。如下图,Logistic回归就比线性回归多了一个Sigmoid函数(一般叫做激活函数,为非线性变换,当然激活函数有很多)


二、Binary Cross Entropy
二元交叉熵是交叉熵的一种特例,常用于二分类问题。
有关于BCEloss的解释可以看这个视频:吴恩达深度学习——logistic损失函数的解释

三、程序实现

import torch

# prepare dataset
x_data = torch.Tensor([[1.0], [2.0], [3.0]])
y_data = torch.Tensor([[0], [0], [1]])

# design model using class
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 = torch.sigmoid(self.linear(x))
        return y_pred

model = LogisticRegressionModel()
print(model)

# construct loss and optimizer
criterion = torch.nn.BCELoss(reduction='sum')
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

# training cycle forward, backward, update
for epoch in range(1000):
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    if (epoch + 1) % 100 == 0:
        print(f"Epoch [epoch + 1/1000], Loss: 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.0]])
y_test = model(x_test)
print('y_pred = ', y_test.data)

以上是关于PyTorch学习5《PyTorch深度学习实践》——逻辑回归[对数几率回归](Logistic Regression)的主要内容,如果未能解决你的问题,请参考以下文章

‹拆书分享篇›深度学习框架PyTorch入门与实践

PyTorch 深度学习实践 - CNN

赠书福利!《深度学习框架PyTorch:入门与实践》

每月好书深度学习框架PyTorch入门与实践

深度学习与图神经网络核心技术实践应用高级研修班-Day1Tensorflow和Pytorch

PyTorch学习3《PyTorch深度学习实践》——反向传播(Back Propagation)