《Pytorch深度学习实践》ch5-Logistic回归

article/2025/6/7 22:54:49

                                                        ------B站《刘二大人》

1.Classification

  • 经典的分类数据集:MNIST(0 - 9)

  • 导入数据集:(路径,训练集/测试集,是否下载)
import torchvision
train_set = torchvision.datasets.MINIST(root='../dataset/mnist', train=True,  download=True)
test_set  = torchvision.datasets.MINIST(root='../dataset/mnist', train=False, download=True)

2.Sigmoid functions

  • 由于分类问题就是求概率的最大值,所以利用 S 函数将数值全部映射到 [0,1] 区间;
  • 最著名的就是这个 Logistic 函数:

  • 其它的 S 函数:

3.Logistic Regression Model

  • 就是在原函数基础上加一个 Sigmoid:

4.Loss and BCE

  • BCE:Binary Cross Entropy,二元交叉熵损失:

5.Implemetation

  • 导包:
import torch
import torch.nn.functional as F
  • 数据集:y 变为 {0,1},二分类
# 数据集
x_data = torch.Tensor([[1.0], [2.0], [3.0]])
y_data = torch.Tensor([[0], [0], [1]])
  • 模型:F.sigmoid()函数
# 模型
class LogisticRegressionModel(torch.nn.Module): # 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_predmodel = LogisticRegressionModel() # 实例化
  •  损失和优化器:BCELoss
# 损失函数和优化器
criterion = torch.nn.BCELoss(reduction = 'sum') # 计算损失,参数为(y_pred, y)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) # 1.前馈print(epoch, loss)optimizer.zero_grad() # 梯度清零loss.backward() # 2.反馈optimizer.step() # 3.更新

6.Result

import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0, 10, 200)
x_t = torch.Tensor(x).view((200,1)) # 将x数组转换为PyTorch张量,并将其形状调整为列向量(200x1)
y_t = model(x_t)
y = y_t.data.numpy() # 将输出张量y_t转换为NumPy数组yplt.plot(x, y)
plt.plot([0, 10], [0.5, 0.5], c='r') # 绘制一条从x=0到x=10的红色水平线,y值为0.5
plt.xlabel('Hours')
plt.ylabel('Probability of Pass')
plt.grid()
plt.show()
  • 绘图如下:


http://www.hkcw.cn/article/KFBxrageVJ.shtml

相关文章

HCIP(BGP综合实验)

一、实验拓扑 AS 划分: AS1:R1(环回 L0:172.16.0.1/32,L1:192.168.1.0/24)AS2:R2、R3、R4、R5、R6、R7(内部运行 OSPF,AS 号为 64512 和 64513 的联盟)AS3:R…

AI数字人技术革新进行时:井云数字人如何重塑人机交互未来?

老板们注意了!不用反复真人出镜拍摄,AI数字人来帮你做口播,只需3分钟克隆你的形象和声音,输入文案24小时随时都能生成视频! 在元宇宙概念持续升温、虚拟与现实加速融合的当下,AI数字人正以惊人的速度从科幻…

使用n8n工作流编排AI Agent处理爬取的网页信息

目录 使用docker本地部署n8n 例子 1.点击触发节点 2.RSS Read节点 3.Limit节点 4.FireCrawl节点 5.AI Agent节点 6.Aggregate节点 7.Markdown节点 8.Send Email节点 使用docker本地部署n8n docker-compose.yml: version: "3.8" services:n8n:…

【软考】计算机系统构成及硬件基础知识

文章目录 进制码制逻辑运算CPU的构成、CPU性能指标多级存储、存储器分类、高速缓存Cache总线指令、寻址方式、RISC/CISC流水线的概念、周期、计算公式输入输出系统校验码 (奇偶校验、CRC、海明码) 进制 二进制:0、1 八进制:0、1、2、3、4、5、6、7 十进…

纯色图片生成器

就是在测试代码的时候有时候会用到一些纯色的图片进行测试,后面突发奇想才搞了一个纯色生成器玩玩,有需要的可以三连自取哦~ 一键生成高清纯色背景,满足设计、演示、测试需求。支持自定义颜色代码,快速导出PNG。 效果如下&#x…

【知识点】第4章:程序控制结构

文章目录 知识点整理程序控制结构 练习题判断题简答题选择题 知识点整理 程序控制结构 程序由3种基本结构组成:顺序结构、分支结构和循环结构。 顺序结构是程序按照顺序依次执行的一种运行方式。 分支结构是程序根据条件判断结果而选择不同向前执行路径的一种方式…

DeepSeek眼中的文明印记:山海经

一、山海经到底是怎么回事? 《山海经》是中国古代一部极具神秘色彩的文化典籍,成书时间跨度较大(大致从战国至汉代),内容庞杂,涉及神话、地理、物产、巫术、医学、民俗等多个领域。关于它的性质&#xff0…

win11中使用grep命令

Download grep-2.5.4-setup.exe (GnuWin) 安装后,在控制面板中设置好环境变量 Path中加入: E:\software\GnuWin32\bin 测试:

java30

1.多线程 多线程实现方式: 继承Thread: 注意:使用的是start方法,而不是run方法 实现runnable: 利用Callable接口和Future接口方式实现: 总结: 线程类Thread的成员方法: 注意:父类没有throws异常…

【复习】软件测试

软件测试复习 试题分布 软件测试绪论 软件测试定义 软件测试分类: 软件测试目的: 测试与开发的关系 过程和流程: 过程和流程是对同一事物不同级别的描述,并不是包含关系。过程抓大放小,流程事无巨细。白盒测…

闲谈PMIC和SBC

今天不卷,简单写点。 在ECU设计里,供电芯片选型是逃不开的话题,所以聊聊PMIC或者SBC的各自特点,小小总结下。 PMIC,全称Power Management Intergrated Circuits,听名字就很专业:电源管理&…

风机那么高,叶片怎么检查得到?

也许你曾见过电力巡检员爬到电杆上作检修工作,几层楼的高度尚且让人感觉危险值飙升,那巨人般高大的风机呢? 也许一想就让人脚底发颤。 在那些离我们普通人遥远的山上、海上,有这么一个群体,他们要在灼灼烈日下爬上14…

mac下通过anaconda安装Python

本次分享mac下通过anaconda安装Python、Jupyter Notebook、R。 anaconda安装 点击👉https://www.anaconda.com/download, 点击Mac系统安装包, 选择Mac芯片:苹果芯片 or intel芯片, 选择苹果芯片图形界面安装&#x…

视频转换新选择:XMedia Recode v3.6.1.2,绿色便携版来袭

嘿,各位朋友!今天给大家带来一款超好用的视频转换神器,XMedia Recode。这个工具刚刚出了新版本,v3.6.1.2,完全免费,没有广告,而且是绿色便携版,用起来特别方便。 使用方法超级简单&…

自驾总结_Localization

综述&#xff1a; Localizaiton的主要功能是根据车身姿态信息&#xff0c;Lidar数据&#xff0c;点云高精度地图&#xff0c;组合导航信息&#xff0c;在点云高精度地图覆盖的区域内&#xff08;时速<30km/h&#xff09;完成高精度的位姿输出。 在场景适应能力上&#xff0…

Python数据可视化科技图表绘制系列教程(一)

目录 创建多个坐标图形&#xff08;坐标系&#xff09; 图表的组成 创建图形与子图 创建子图1 创建子图2 创建子图3 创建子图4 创建子图5 添加图表元素 极坐标图1 极坐标图2 【声明】&#xff1a;未经版权人书面许可&#xff0c;任何单位或个人不得以任何形式复制、…

星动纪元的机器人大模型 VPP,泛化能力效果如何?与 VLA 技术的区别是什么?

点击上方关注 “终端研发部” 设为“星标”&#xff0c;和你一起掌握更多数据库知识 VPP 利用了大量互联网视频数据进行训练&#xff0c;直接学习人类动作&#xff0c;减轻了对于高质量机器人真机数据的依赖&#xff0c;且可在不同人形机器人本体之间自如切换&#xff0c;这有望…

SOC-ESP32S3部分:28-BLE低功耗蓝牙

飞书文档https://x509p6c8to.feishu.cn/wiki/CHcowZMLtiinuBkRhExcZN7Ynmc 蓝牙是一种短距的无线通讯技术&#xff0c;可实现固定设备、移动设备之间的数据交换&#xff0c;下图是一个蓝牙应用的分层架构&#xff0c;Application部分则是我们需要实现的内容&#xff0c;Protoc…

动态规划-1143.最长公共子序列-力扣(LeetCode)

一、题目解析 对于给定了两个字符串中&#xff0c;需要找到最长的公共子序列&#xff0c;也就是两个字符串所共同拥有的子序列。 二、算法原理 1、状态表示 dp[i][j]&#xff1a;表示s1的[0,i]和s2的[0,j]区间内所有子序列&#xff0c;最长子序列的长度 2、状态转移方程 根…

EMQX 社区版单机和集群部署

EMQ 支持 Docker&#xff0c;宿主机&#xff0c;k8s部署&#xff1b;支持单机或集群部署。以下给出EMQX社区版单机和集群部署方法 1. Docker单机部署 官方推荐最小配置&#xff1a;2核 4G 下载容器镜像 docker pull emqx/emqx:5.3.2启动容器 docker run -d --name emqx \-…