当前位置:网站首页>6. Logistic model
6. Logistic model
2022-07-05 05:41:00 【A big pigeon】
Logistic model To solve the problem of classification .
If the first 5 The problem with section Whether to pass , It is a binary classification problem .
The output is the probability of passing the exam P. probability P stay 0 To 1 Between .
The output range of the original linear model is R ( The set of real Numbers ), The original output can be mapped to [0,1] Within the scope of .
It only needs two changes to change the linear model into the logistic model , Model plus sigmod() And the loss function is changed to BCELoss
Complete code :
import torch
import torch.nn.functional as F
import numpy as np
import matplotlib.pyplot as plt
# 1. Prepare the data , Note that they are all in matrix form
x_data = torch.Tensor([[1.0], [2.0], [3.0]])
y_data = torch.Tensor([[0], [0], [1]])
# 2. The design model ( class ) Inherit nn.Module In order to use its method
class LogisticRegressionModel(torch.nn.Module):
# initialization
def __init__(self):
super(LogisticRegressionModel, self).__init__()
self.linear = torch.nn.Linear(1, 1) # Linear Is a linear unit
# Feedforward method
def forward(self, x):
y_pred = F.sigmoid(self.linear(x)) # In fact, the calling object linear Of __call__() Method ,linear Of __call__() Method execution forward feedforward
return y_pred
model = LogisticRegressionModel()
# 3 loss and optimizer( Optimizer )
criterion = torch.nn.BCELoss(size_average=False) # There is no need to find the mean
# Optimizer . model.parameters() Get the parameters that need to be optimized in the model ,lr(learning rate, Learning rate )
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
# 4 Training process
for epoch in range(1000):
# feedforward
y_pred = model(x_data)
# Calculate the loss
loss = criterion(y_pred, y_data)
print("epoch={},loss={}".format(epoch, loss))
optimizer.zero_grad() # Zeroing
# Back propagation
loss.backward()
# to update 、 Optimization parameters
optimizer.step()
# Test, Check the model parameters and test the training effect
x_test = torch.Tensor([[4.0]])
y_test = model(x_test)
print('y_pred = {} for x = {}'.format(y_test.data, x_test.data))
# mapping
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], [.5,.5], c='r')
plt.xlabel('Hours')
plt.ylabel('Probability of Pass')
plt.grid()
plt.show()
边栏推荐
- ALU逻辑运算单元
- Bit mask of bit operation
- Sword finger offer 04 Search in two-dimensional array
- Zheng Qing 21 ACM is fun. (3) part of the problem solution and summary
- Educational Codeforces Round 116 (Rated for Div. 2) E. Arena
- 剑指 Offer 05. 替换空格
- Talking about JVM (frequent interview)
- Kubedm series-00-overview
- 【Jailhouse 文章】Performance measurements for hypervisors on embedded ARM processors
- Wazuh開源主機安全解决方案的簡介與使用體驗
猜你喜欢
lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
Using HashMap to realize simple cache
A misunderstanding about the console window
CF1637E Best Pair
Reader writer model
sync. Interpretation of mutex source code
Acwing 4300. Two operations
挂起等待锁 vs 自旋锁(两者的使用场合)
CF1634 F. Fibonacci Additions
On-off and on-off of quality system construction
随机推荐
2022 pole technology communication arm virtual hardware accelerates the development of Internet of things software
sync. Interpretation of mutex source code
Software test -- 0 sequence
Animation scoring data analysis and visualization and it industry recruitment data analysis and visualization
Improvement of pointnet++
Demonstration of using Solon auth authentication framework (simpler authentication framework)
使用Electron开发桌面应用
Bit mask of bit operation
2020ccpc Qinhuangdao J - Kingdom's power
Corridor and bridge distribution (csp-s-2021-t1) popular problem solution
Chapter 6 data flow modeling - after class exercises
中职网络安全技能竞赛——广西区赛中间件渗透测试教程文章
Add level control and logger level control of Solon logging plug-in
[cloud native] record of feign custom configuration of microservices
Annotation and reflection
【Jailhouse 文章】Jailhouse Hypervisor
从Dijkstra的图灵奖演讲论科技创业者特点
Detailed explanation of expression (csp-j 2021 expr) topic
Zheng Qing 21 ACM is fun. (3) part of the problem solution and summary
How can the Solon framework easily obtain the response time of each request?