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)的主要内容,如果未能解决你的问题,请参考以下文章