pytorch深度学习逻辑回归 logistic regression

# logistic regression 二分类
# 导入pytorch  和 torchvision
import numpy as np
import torch
import torchvision
from torch.autograd import Variable
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import matplotlib.pyplot as pltx_data = torch.tensor([[1.0], [2.0], [3.0]])  # x_data是一个张量
y_data = torch.Tensor([[0], [0], [1]])  # Tensor是一个类,tesor是一个张量# 定义logistic regression模型
class LogisticRegressionModel(nn.Module):def __init__(self):super(LogisticRegressionModel, self).__init__()  # 等价于nn.Module.__init__(self)self.linear = nn.Linear(1, 1)  # 输入和输出的维度都是1def forward(self, x):  # forward函数是必须要有的,用来构建计算图# 二分类问题,所以用sigmoid函数作为激活函数y_pred = torch.sigmoid(self.linear(x))  # forwardreturn y_predmodel = LogisticRegressionModel()  # 实例化一个模型
criterion = nn.BCELoss(size_average=False)  # 损失函数
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)  # 优化器 lr为学习率# 训练模型
for epoch in range(100):  # 训练100次y_pred = model(x_data)  # forwardloss = criterion(y_pred, y_data)  # compute lossprint(epoch, loss.item())  # 打印lossoptimizer.zero_grad()  # 梯度清零loss.backward()  # backwardoptimizer.step()  # update# 测试模型
x_test = torch.tensor([[4.0]])
y_test = model(x_test)
print("predict (after training)", y_test.data)  # 预测# 绘制训练次数和预测值的关系
x = np.linspace(0, 10, 200)  # 从0到10均匀取200个点
x_t = torch.Tensor(x).view(200, 1)  # 转换成200行1列的张量 用Tensor是因为要用到torch.sigmoid
y_t = model(x_t)  # 预测
y = y_t.data.numpy()  # 转换成numpy数组
plt.plot(x, y)  # 绘制预测值和x的关系
plt.plot([0, 10], [0.5, 0.5], c='r')  # 绘制y=0.5的直线
plt.xlabel("Hours")  # x轴标签
plt.ylabel("Probability of Pass")  # y轴标签
plt.grid()  # 绘制网格
plt.show()  # 显示图像

结果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kafka第二课-代码实战、参数配置详解、设计原理详解

一、代码实战 一、普通java程序实战 引入依赖 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>2.4.1</version></dependency><dependency>&l…

Ceph的安装部署

文章目录 一、存储基础1.1 单机存储设备1.2 单机存储的问题1.3分布式存储&#xff08;软件定义的存储 SDS&#xff09; 二、Ceph 简介2.1 Ceph 优势2.2 Ceph 架构2.3 Ceph 核心组件2.4 Pool、PG 和 OSD 的关系&#xff1a;2.5 OSD 存储后端2.6 Ceph 数据的存储过程2.7 Ceph 版本…

面向初学者的卷积神经网络

卷积神经网络在机器学习中非常重要。如果你想做计算机视觉或图像识别任务&#xff0c;你根本离不开它们。但是很难理解它们是如何工作的。 在这篇文章中&#xff0c;我们将讨论卷积神经网络背后的机制、它的优点和应用领域。 什么是神经网络&#xff1f; 首先&#xff0c;让…

架构训练营:3-3设计备选方案与架构细化

3架构中期 什么是备选架构&#xff1f; 备选架构定义了系统可行的架构模式和技术选型 备选方案筛选过程 头脑风暴 &#xff1a;对可选技术进行排列组合&#xff0c;得到可能的方案 红线筛选&#xff1a;根据系统明确的约束和限定&#xff0c;一票否决某些方案&#xff08;主要…

Docker 安装 Nginx,并实现负载均衡

1、获取 nginx 的镜像 # 默认是latest版本docker pull nginx 2、运行 nginx 容器 docker run --name nginx-80 -p 80:80 --rm -d nginx# --name nginx-80 设定容器的名称# -p 80:80 端口进行映射&#xff0c;将本地的80端口映射到容器内部的80端口# --rm 表示容器退出后直接…

Vue中v-html用法以及指令汇总

操作数组的方法 &#xff1a; push&#xff1a;数组最后位置新增元素 pop&#xff1a; 删除最后一个元素 shift&#xff1a; 删除第一个元素 unshift&#xff1a;往前面加一个元素 splice&#xff1a;在数组的指定位置插入、删除、替换一个元素 sort&#xff1a; 数组排序…

卷积神经网络(CNN)原理详解

近些年人工智能发展迅速&#xff0c;在图像识别、语音识别、物体识别等各种场景上深度学习取得了巨大的成功&#xff0c;例如AlphaGo击败世界围棋冠军&#xff0c;iPhone X内置了人脸识别解锁功能等等&#xff0c;很多AI产品在世界上引起了很大的轰动。 而其中 卷积神经网络&am…

【微信小程序-uniapp】CustomButton 自定义常用吸底按钮组件

1. 效果图 2. 组件完整代码 <template><view:class="[custom-btn flex-center, size == big ? big : mid, type == primary ? primary : info, plain ? plain : , disabled ? disabled : , round ? round : ]"

神经网络之VGG

目录 1.VGG的简单介绍 1.2结构图 3.参考代码 VGGNet-16 架构&#xff1a;完整指南 |卡格尔 (kaggle.com) 1.VGG的简单介绍 经典卷积神经网络的基本组成部分是下面的这个序列&#xff1a; 带填充以保持分辨率的卷积层&#xff1b; 非线性激活函数&#xff0c;如ReLU&a…

挖矿记录+解决方案:利用GitLab组件对服务器进行挖矿导致CPU占用200%

文章目录 什么是云服务器挖矿?事件记录事件分析产生影响解决方案后期预防什么是云服务器挖矿? 云服务器挖矿是指利用云服务器从事赚取比特币的活动。比特币是一种虚拟数字货币,挖矿是将一段时间内比特币系统中发生的交易进行确认,并记录在区块链上形成新区块的过程。 用于…

Mybatis:传参+提交事务(自动or手动)+sql多表关联查询(两种方法)

目录 一、参数两种类型&#xff1a; 二、传参的几种方法&#xff1a; 三、提交事务 四、sql多表关联查询(两种方法) 一、参数两种类型&#xff1a; 1.#{参数}&#xff1a;预编译方式&#xff0c;更安全&#xff0c;只用于向sql中传值&#xff1b; select * from admin w…

只需一个提示词解除GPT-4的字符限制!

ChatGPT的内存有限,GPT-3.5-turbo的限制为4897个令牌,而GPT-4的最大限制为8192。如果您在使用GPT-4进行聊天时超过8192个令牌(约6827个单词),它就会开始遗忘。我想出了一种新的技巧,可以轻松将对话扩展10倍。 这种技巧不会将对话中的每个字都保存到内存中。当您去开会时,会有人…

如何解除“无法完成操作 因为文件包含病毒或潜在垃圾软件”

当运行软件遇到“无法完成操作 因为文件包含病毒或潜在垃圾软件”时&#xff0c;如何解决&#xff1f;如果确认此软件不是病毒软件&#xff0c;那么可以按照如下方法进行解决&#xff1a; 1&#xff1a;关闭防火墙 控制面板-系统和安全-Windows Defender防火墙-自定义设置&am…

分布式运用存储系统Ceph

一、ceph的相关知识 1.ceph介绍与简介 Ceph是一个开源的分布式存储解决方案&#xff0c;旨在提供可扩展性、高性能和强大的数据可靠性。它采用了一种分布式对象存储架构&#xff0c;能够同时提供块存储和文件存储的功能。 Ceph使用C语言开发&#xff0c;是一个开放、自我修复和…

MySQL数据表高级操作

一、克隆/复制数据表二、清空表&#xff0c;删除表内的所有数据删除小结 三、创建临时表四、MySQL中6种常见的约束1、外键的定义2、创建外键约束作用3、创建主表test44、创建从表test55、为主表test4添加一个主键约束。主键名建议以"PK_”开头。6、为从表test5表添加外键&…

数据结构与算法——顺序表(顺序存储结构)及初始化详解

顺序表&#xff0c;全名顺序存储结构&#xff0c;是线性表的一种。通过《什么是线性表》一节的学习我们知道&#xff0c;线性表用于存储逻辑关系为“一对一”的数据&#xff0c;顺序表自然也不例外。 不仅如此&#xff0c;顺序表对数据的物理存储结构也有要求。顺序表存储数据…

【论文阅读】TransCAM: Transformer Attention-based CAM Refinement for WSSS

分享一篇阅读的用于弱监督分割的论文 论文标题&#xff1a; TransCAM: Transformer Attention-based CAM Refinement for Weakly Supervised Semantic Segmentation 作者信息&#xff1a; 代码地址&#xff1a; https://github.com/liruiwen/TransCAM Abstract 大多数现有…

【React】- 组件生命周期连续渲染两次问题

最近在整理生命周期相关的知识内容&#xff0c;然后发现一个奇怪的现象&#xff0c;即组件的生命周期会运行2次&#xff01;经过确认不是代码问题&#xff0c;于是开始找度娘&#xff0c;终于找到其原因-React中的严格模式&#xff0c;在这里记录一下 一、问题重现 如图所示&a…

EMC学习笔记(十五)射频PCB的EMC设计(二)

射频PCB的EMC设计&#xff08;二&#xff09; 1.滤波1.1 电源和控制线的滤波1.2 频率合成器数据线、时钟线、使能线的滤波 2.接地2.1 接地分类2.2 大面积接地2.3 分组就近接地2.4 射频器件接地2.5 接地时应该注意的问题2.6 接地平面的分布 1.滤波 1.1 电源和控制线的滤波 随着…

人工智能自然语言处理:N-gram和TF-IDF模型详解

人工智能自然语言处理&#xff1a;N-gram和TF-IDF模型详解 1.N-gram 模型 N-Gram 是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为 N 的滑动窗口操作&#xff0c;形成了长度是 N 的字节片段序列。 每一个字节片段称为 gram&#xff0c;对所…