当前位置: 首页 > news >正文

动手学深度学习(Pytorch版)代码实践-深度学习基础-01基础函数的使用

01基础函数的使用

主要内容

  1. 张量操作:创建和操作张量,包括重塑、填充、逐元素操作等。
  2. 数据处理:使用pandas加载和处理数据,包括处理缺失值和进行one-hot编码。
  3. 线性代数:包括矩阵运算、求和、均值、点积和各种范数计算。
  4. 自动求导:使用PyTorch的自动求导功能计算梯度,并演示梯度清除和分离计算图的操作。
import torch
import pandas as pd
import os# 创建和操作张量
# 张量表示一个数值组成的数组,这个数组可能有多个维度
x = torch.arange(12)  # 创建一个包含从0到11的向量
print("x:", x)  # 打印张量xprint("x的形状:", x.shape)  # 打印张量的形状print("x中的元素总数:", x.numel())  # 打印张量中元素的总数# 改变一个张量的形状而不改变元素数量和元素值,采用reshape
X = x.reshape(3, 4)  # 将x重塑为一个3行4列的矩阵
print("重塑后的X:", X)  # 打印重塑后的X# 创建全0,全1张量
print("全零张量:", torch.zeros((2, 3, 4)))  # 创建一个形状为(2,3,4)的全0张量
print("全一张量:", torch.ones((2, 3, 4)))  # 创建一个形状为(2,3,4)的全1张量# 使用包含数值的Python列表创建张量
t = torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])  # 创建张量t
print("从列表创建的张量:", t)  # 打印张量t
print("张量t的形状:", t.shape)  # 打印张量t的形状# 张量操作
X = torch.arange(12, dtype=torch.float32).reshape((3, 4))  # 创建并重塑张量X
Y = torch.tensor([[2.0, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])  # 创建张量YZ = torch.zeros_like(X)  # 创建一个形状和X相同的全零张量
Z[:] = X + Y  # 计算X和Y的逐元素加法
print("Z (X + Y):", Z)  # 打印Z
print("Z的转置:", Z.T)  # 打印Z的转置# 使用pandas创建和处理数据集
# 创建一个人工数据集,并存储在CSV(逗号分隔值)文件中
os.makedirs(os.path.join('..', 'data'), exist_ok=True)  # 创建数据目录
data_file = os.path.join('..', 'data', 'house_tiny.csv')  # 定义文件路径
with open(data_file, 'w') as f:f.write('NumRooms,Alley,Price\n')  # 列名f.write('NA,Pave,127500\n')  # 每行表示一个数据样本f.write('2,NA,106000\n')f.write('4,NA,178100\n')f.write('NA,NA,140000\n')data = pd.read_csv(data_file)  # 读取CSV文件
print("从CSV加载的数据:", data)  # 打印加载的数据inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]  # 分离输入和输出
inputs['NumRooms'] = inputs['NumRooms'].fillna(inputs['NumRooms'].mean())  # 用均值填充缺失值
print("处理后的输入数据:", inputs)  # 打印处理后的输入数据inputs = pd.get_dummies(inputs, dummy_na=True).astype('float')  # 转换类别变量并将其转换为浮点型
print("独热编码后的输入数据:", inputs)  # 打印独热编码后的输入数据X = torch.tensor(inputs.values)  # 将输入数据转换为张量
Y = torch.tensor(outputs.values)  # 将输出数据转换为张量
print("输入数据的张量X:", X)  # 打印输入数据的张量X
print("输出数据的张量Y:", Y)  # 打印输出数据的张量Y# 线性代数操作
A = torch.arange(20, dtype=torch.float32).reshape(5, 4)  # 创建并重塑张量A
B = A.clone()  # 通过分配新内存,将A的副本分配给B
print("矩阵A:", A)  # 打印矩阵A
print("矩阵A + B:", A + B)  # 矩阵加法
print("矩阵A * B:", A * B)  # 矩阵逐元素乘法a = 2
X = torch.arange(24).reshape(2, 3, 4)  # 创建并重塑张量X
print("张量X:", X)  # 打印张量X
print("a + X:", a + X)  # 标量和张量相加
print("a * X的形状:", (a * X).shape)  # 打印标量和张量相乘后的形状# 求和与均值
A_sum_axis0 = A.sum(axis=0)  # 沿着第0维度求和
print("沿第0维度求和:", A_sum_axis0, "形状:", A_sum_axis0.shape)  # 打印求和结果及其形状print("A中的元素总数:", A.numel())  # 打印A中的元素总数
print("A的均值:", A.mean())  # 打印A的均值
print("A的和除以元素总数:", A.sum() / A.numel())  # 打印A的和除以元素总数sum_A = A.sum(axis=1, keepdims=True)  # 沿第1维度求和,并保持维度
print("沿第1维度求均值,保持维度:", A.mean(axis=1, keepdim=True))  # 打印沿第1维度的均值,并保持维度
print("沿第1维度求和,保持维度:", sum_A)  # 打印沿第1维度的求和,并保持维度print("A的归一化 (A / sum_A):", A / sum_A)  # 打印归一化的Aprint("沿第0维度的累积和:", A.cumsum(axis=0))  # 打印沿第0维度的累积和# 点积
x = torch.arange(4, dtype=torch.float32)  # 创建张量x
y = torch.ones(4, dtype=torch.float32)  # 创建全1张量y
print("x和y的点积:", torch.dot(x, y))  # 打印x和y的点积
print("逐元素乘积的和:", torch.sum(x * y))  # 打印逐元素乘积的和print("矩阵A和向量x的乘积:", torch.mv(A, x))  # 打印矩阵和向量的乘积# 矩阵乘法
B = torch.ones(4, 3)  # 创建全1矩阵B
print("矩阵A:", A)  # 打印矩阵A
print("矩阵B:", B)  # 打印矩阵B
print("矩阵A和B的矩阵乘法:", torch.mm(A, B))  # 打印矩阵A和B的矩阵乘法# 各种范数
u = torch.tensor([3.0, -4.0])  # 创建张量u
print("u的L2范数:", torch.norm(u))  # 打印u的L2范数
print("u的L1范数:", torch.abs(u).sum())  # 打印u的L1范数
print("一个全1矩阵(4x9)的弗罗贝尼乌斯范数:", torch.norm(torch.ones((4, 9))))  # 打印全1矩阵的弗罗贝尼乌斯范数print("张量元素的和:", sum(torch.arange(20, dtype=torch.float32)))  # 打印张量元素的和A = torch.arange(40, dtype=torch.float32).reshape(2, 5, 4)  # 创建并重塑张量A
print("3D张量A:", A)  # 打印3D张量A
print("沿轴[1,2]求和:", A.sum(axis=[1, 2]))  # 打印沿轴[1,2]求和结果
print("沿轴[1,2]求和,保持维度:", A.sum(axis=[1, 2], keepdims=True))  # 打印沿轴[1,2]求和结果,并保持维度A = torch.ones(2, 5, 4)  # 创建全1张量A
print("3D张量A,全为1:", A)  # 打印全1张量A
print("沿轴[0,1]求和,保持维度:", A.sum(axis=[0, 1], keepdim=True))  # 打印沿轴[0,1]求和结果,并保持维度# 自动求导
x = torch.arange(4.0)  # 创建张量x
print("张量x:", x)  # 打印张量xx.requires_grad_(True)  # 开启自动求导
print("x的梯度 (初始为None):", x.grad)  # 打印x的梯度 (初始为None)y = 2 * torch.dot(x, x)  # 2 * (x · x) 求导为 4x
print("y = 2 * (x · x):", y)  # 打印yy.backward()  # 计算导数
print("backward之后x的梯度:", x.grad)  # 打印x的梯度
print("x的梯度是否等于4 * x:", x.grad == 4 * x)  # 打印x的梯度是否等于4 * x# 清除梯度
x.grad.zero_()  # 清除x的梯度
y = x.sum()
y.backward()
print("求和y并backward之后的x梯度:", x.grad)  # 打印求和y并backward之后的x梯度# 对非标量调用backward需要传入一个gradient参数
x.grad.zero_()  # 清除x的梯度
y = x * x
y.sum().backward()  # 等价于 y.backward(torch.ones(len(x)))
print("平方并求和y之后的x梯度:", x.grad)  # 打印平方并求和y之后的x梯度# 分离计算图
x.grad.zero_()  # 清除x的梯度
y = x * x
u = y.detach()  # 从计算图中分离y
print("张量y:", y)  # 打印张量y
print("从y分离的张量u:", u)  # 打印从y分离的张量uz = u * x
z.sum().backward()
print("分离u乘以x的梯度:", x.grad == u)  # 打印分离u乘以x的梯度x.grad.zero_()  # 清除x的梯度
y.sum().backward()
print("再次求和y之后的x梯度:", x.grad == 2 * x)  # 打印再次求和y之后的x梯度

相关文章:

动手学深度学习(Pytorch版)代码实践-深度学习基础-01基础函数的使用

01基础函数的使用 主要内容 张量操作:创建和操作张量,包括重塑、填充、逐元素操作等。数据处理:使用pandas加载和处理数据,包括处理缺失值和进行one-hot编码。线性代数:包括矩阵运算、求和、均值、点积和各种范数计算…...

vm-bhyve:bhyve虚拟机的管理系统@FreeBSD

先说情况,当前创建虚拟机后网络没有调通....不明白是最近自己点背,还是确实有难度... 缘起: 前段时间学习bhyve虚拟机,发现bvm这个虚拟机管理系统,但是实践下来发现网络方面好像有问题,至少我花了两天时间…...

【Java】刚刚!突然!紧急通知!垃圾回收!

【Java】刚刚!突然!紧急通知!垃圾回收! 文章目录 【Java】刚刚!突然!紧急通知!垃圾回收!从C语言的内存管理引入:手动回收Java的垃圾回收机制引用计数器循环引用问题 可达…...

[Algorithm][动态规划][子序列问题][最长递增子序列][摆动序列]详细讲解

目录 0.子序列 vs 子数组1.最长递增子序列1.题目链接2.算法原理详解3.代码实现 2.摆动序列1.题目链接2.题目链接3.代码实现 0.子序列 vs 子数组 子序列: 相对顺序是跟源字符串/数组是一致的但是元素和元素之间,在源字符串/数组中可以是不连续的一般时间…...

【稳定检索】2024年心理学与现代化教育、媒体国际会议(PMEM 2024)

2024年心理学与现代化教育、媒体国际会议 2024 International Conference on Psychology and Modern Education and Media 【1】会议简介 2024年心理学与现代化教育、媒体国际会议即将召开,这是一场汇聚全球心理学、教育及媒体领域精英的学术盛宴。 本次会议将深入探…...

深入了解diffusion model

diffusion model是如何运作的 会输入当时noise的严重程度,根据我们的输入来确定在第几个step,并做出不同的回应。 Denoise模组内部实际做的事情 产生一张图片和产生noise难度是不一样的,若denoise 模块产生一只带噪声的猫说明这个模块已经会…...

TransmittableThreadLocal原理

1、原理 TransmittableThreadLocal(简称TTL)是阿里巴巴开源的一个Java库,用于解决线程池中线程本地变量传递的问题。其底层原理主要是基于Java的ThreadLocal机制并对其进行扩展,以支持在父子线程间以及线程池中任务切换时&#x…...

华为昇腾310B初体验,OrangePi AIpro开发板使用测评

0、写在前面 很高兴收到官方的OrangePi AIpro开发板测试邀请,在过去的几年中,我在自己的博客写了一系列有关搭载嵌入式Linux系统的SBC(单板计算机)的博文,包括树莓派4系列、2K1000龙芯教育派、Radxa Rock5B、BeagleBo…...

GPTQ 量化大模型

GPTQ 量化大模型 GPTQ 算法 GPTQ 算法由 Frantar 等人 (2023) 提出,它从 OBQ 方法中汲取灵感,但进行了重大改进,可以将其扩展到(非常)大型的语言模型。 步骤 1:任意顺序量化 OBQ 方法选择权重按特定顺序…...

【GD32】05 - PWM 脉冲宽度调制

PWM PWM (Pulse Width Modulation) 是一种模拟信号电平的方法,它通过使用数字信号(通常是方波)来近似地表示模拟信号。在PWM中,信号的占空比(即高电平时间占整个周期的比例)被用来控制平均输出电压或电流。…...

JVM思维导图

帮助我们快速整理和总结JVM相关知识,有结构化认识和整体的思维模型 JVM相关详细知识和面试题...

Ollama+OpenWebUI+Phi3本地大模型入门

文章目录 Ollama+OpenWebUI+Phi3本地大模型入门一、基础环境二、Ollama三、OpenWebUI + Phi3Ollama+OpenWebUI+Phi3本地大模型入门 完全不懂大模型的请绕道,相信我李一舟的课程比较适合 Ollama提供大模型运行环境,OpenWebUI提供UI,Phi3就是那个大模型。 当然,Ollama支持超级…...

实战15:bert 命名实体识别、地址解析、人名电话地址抽取系统-完整代码数据

直接看项目视频演示: bert 命名实体识别、关系抽取、人物抽取、地址解析、人名电话地址提取系统-完整代码数据_哔哩哔哩_bilibili 项目演示: 代码: import re from transformers import BertTokenizer, BertForTokenClassification, pipeline import os import torch im…...

js 表格添加|删除一行交互

一、需求 二、实现 <div style"margin-bottom: 55px"><form action"" method"post" enctype"multipart/form-data" id"reportForm" name"sjf" style"margin-left: 25px;margin-bottom: 50px;&quo…...

如何选择合适的服务器硬件和配置?

业务需求 了解您的业务需求和负载。这将帮助您确定需要哪种类型的服务器&#xff08;如文件服务器、数据库服务器、Web服务器等&#xff09;以及所需的处理能力、内存、存储和网络性能。...

Prometheus + Grafana + Alertmanager 系统监控

PrometheusGrafana 系统监控 1. 简介1.1 Prometheus 普罗 米修斯1.2 Grafana 2. 快速试用2.1 Prometheus 普罗 米修斯2.2 Prometheus 配置文件2.3 Grafana 2. 使用 Docker-Compose脚本部署监控服务3. Grafana 配置3.1 配置数据源 Prometheus3.2 使用模板ID 配置监控模板3.3 使用…...

5.23R语言-参数假设检验

理论 方差分析&#xff08;ANOVA, Analysis of Variance&#xff09;是统计学中用来比较多个样本均值之间差异的一种方法。它通过将总变异分解为不同来源的变异来检测因子对响应变量的影响。方差分析广泛应用于实验设计、质量控制、医学研究等领域。 方差分析的基本模型 方差…...

rnn 和lstm源码学习笔记

目录 rnn学习笔记 lstm学习笔记 rnn学习笔记 import torchdef rnn(inputs, state, params):# inputs的形状: (时间步数量, 批次大小, 词表大小)W_xh, W_hh, b_h, W_hq, b_q paramsH stateoutputs []# 遍历每个时间步for X in inputs:# 计算隐藏状态 HH torch.tanh(torch.…...

解析Java中1000个常用类:CharSequence类,你学会了吗?

在 Java 编程中,字符串操作是最常见的任务之一。为了提供一种灵活且统一的方式来处理不同类型的字符序列,Java 引入了 CharSequence 接口。 通过实现 CharSequence 接口,各种字符序列类可以提供一致的 API,增强了代码的灵活性和可扩展性。 本文将深入探讨 CharSequence 接…...

微服务远程调用之拦截器实战

微服务远程调用之拦截器实战 前言&#xff1a; 在我们开发过程中&#xff0c;很可能是项目是从0到1开发&#xff0c;或者在原有基础上做二次开发&#xff0c;这次是根据已有代码做二次开发&#xff0c;需要在我们微服务一【这里方便举例&#xff0c;我们后面叫模版微服务】调用…...

德人合科技——天锐绿盾内网安全管理软件 | -文档透明加密模块

天锐绿盾文档加密功能能够为各种模式的电子文档提供高强度加密保护&#xff0c;丰富的权限控制以及灵活的应用管理&#xff0c;帮助企业构建更严密的立体保密体系。 PC地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee ————…...

超融合架构下,虚拟机高可用机制如何构建?

作者&#xff1a;SmartX 产品部 钟锦锌 虚拟机高可用&#xff08;High Availability&#xff0c;简称 HA&#xff09;是虚拟化/超融合平台最常用、关键的功能之一&#xff0c;可在服务器发生故障时通过重建业务虚拟机以降低故障对业务带来的影响。因此&#xff0c;为了充分保障…...

工厂模式详情

一.介绍工厂模式的用途与特点 工厂方法模式是一种创建型设计模式&#xff0c; 其在父类中提供一个创建对象的方法&#xff0c; 允许子类决定实例化对象的类型。定义工厂方法模式(Fatory Method Pattern)是指定义一个创建对象的接口&#xff0c;但让实现这个接口的类来决定实例…...

【Word】调整列表符号与后续文本的间距

1. 默认的列表格式&#xff1a; 2. 修改间距&#xff1a; ************************************************** 分割线 ************************************************************ 3. 效果...

匠心独运,B 端系统 UI 演绎华章之美

匠心独运&#xff0c;B 端系统 UI 演绎华章之美...

Java电商平台-开放API接口签名验证(小程序/APP)

说明&#xff1a;在实际的生鲜业务中&#xff0c;不可避免的需要对外提供api接口给外部进行调用. 这里就有一个接口安全的问题需要沟通了。下面是干货: 接口安全问题 请求身份是否合法&#xff1f; 请求参数是否被篡改&#xff1f; 请求是否唯一&#xff1f; AccessKey&am…...

Tale全局函数对象base

目录 1、 Tale全局函数对象base 1.1、 * tale alert删除 1.2、 * 成功弹框 1.3、 * 弹出成功,并在500毫秒后刷新页面 1.4、 * 警告弹框 1.5、 * 询问确认弹框,这里会传入then函数进来...

【启程Golang之旅】掌握Go语言数组基础概念与实际应用

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…...

COMSOL中液晶材料光学特性模拟

前面我们根据FDTD官方文档设置了液晶指向的模型。COMSOL也可以根据相似的方法设置各项异性的周期性变化的材料。 该方法参考了luneburg_lens的COMSOL文档 在给出的文件中&#xff0c;可以发现定义-变量中可以使用默认坐标作为变量&#xff0c;即xyz。因此&#xff0c;折射率也可…...

虚拟现实环境下的远程教育和智能评估系统(五)

查阅相关VR眼动注意力联合教育学相关论文 1.Exploring Eye Gaze Visualization Techniques for Identifying Distracted Students in Educational VR&#xff08;IEEE VR 2020&#xff09; 摘要&#xff1a;我们提出了一种架构&#xff0c;使VR教学代理能够响应眼动追踪监控…...

【算法】模拟算法——Z字形变换(medium)

题解&#xff1a;模拟算法——Z字形变换(medium) 目录 1.题目2.题解3.参考代码4.总结 1.题目 题目链接&#xff1a;LINK 2.题解 利用模拟&#xff0c;来解决问题。 首先创建出一个O(numRows*n)的数组来&#xff0c;并按照题目要求把每个字符按顺序填进去。 这里以numRows…...

上位机图像处理和嵌入式模块部署(f103 mcu获取唯一id)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于stm32f103系列mcu来说&#xff0c;一般每一颗原厂的mcu&#xff0c;都会对应一个唯一的id。那这个id可以用来做什么用呢&#xff1f;个人认为&…...

运筹学_3.运输问题(特殊的线性规划)

目录 前言3.1 平衡运输问题中初始基可行解确定运输问题平衡运输与非平衡运输平衡运输问题的数学模型单纯形法解决平衡运输问题&#xff0c;初始可行基的确认 3.2 平衡运输问题的最优解判别求检验数表上作业法 3.3 产销不平衡的运输问题运输问题中产大于销的问题运输问题中产小于…...

科研项目书写作学习(持续更新中...)

写好一个科研项目书也是科研中很重要的一部分&#xff0c;所以借这篇博客做一个积累。还是以模块化的方式吧&#xff0c;后面慢慢那再整合逻辑。可能写的也不是很好&#xff0c;慢慢提升吧~ 背景 科研项目书的背景怎么写&#xff1f;首先要突出问题的价值(也就是做此研究的动…...

男士内裤哪个品牌好一点?2024热门男士内裤推荐

男人的内裤保质期只取决于被别人看见的次数&#xff0c;如果某条内裤从未被别人看见过&#xff0c;那它永远都是你的新内裤。也就是说&#xff0c;只要穿着破内裤这尴尬的瞬间没被目击&#xff0c;男人就能永远和一条内裤在一起。 实际上如果长时间不更换男士内裤&#xff0c;…...

Llama模型家族之RLAIF 基于 AI 反馈的强化学习(六) RLAIF 代码实战

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;一&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 基于 LlaMA…...

计算机tcp/ip网络通信过程

目录 &#xff08;1&#xff09;同一网段两台计算机通信过程 &#xff08;2&#xff09;不同网段的两台计算机通信过程 &#xff08;3&#xff09;目的主机收到数据包后的解包过程 &#xff08;1&#xff09;同一网段两台计算机通信过程 如果两台计算机在同一个局域网中的同…...

42.开发中对String.format()的使用之空位补齐

用于空位补齐 Int x1; //对于传入的数字做处理&#xff0c;如果传入的数字不足三位&#xff0c;则使用数字0自动补齐 String numString.format(“%”3”d”,x); System.out.println(“num”num);//输出结果为&#xff1a;001 也可以简写成&#xff1a; String num2String…...

通用代码生成器应用场景四,跨编程语言翻译

通用代码生成器应用场景四&#xff0c;跨编程语言翻译 如果您有一个Java工程&#xff0c;想把它移植到Rust或Golang语言中去&#xff0c;希望尽可能加快研发速度。 如果您的系统是通用代码生成器开发的&#xff0c;保留了系统的SGS源文件或者SGS2的Excel模板&#xff0c;您可…...

β-烟酰胺单核苷酸(NMN)功能不断得到验证 市场规模呈增长态势

β-烟酰胺单核苷酸&#xff08;NMN&#xff09;功能不断得到验证 市场规模呈增长态势 β-烟酰胺单核苷酸&#xff08;β-Nicotinamide mononucleotide&#xff0c;NMN&#xff09;是一种生物活性分子&#xff0c;是一种辅酶Ⅰ&#xff08;NAD&#xff09;的前体&#xff0c;也是…...

深入理解 Go 语言中的字符串不可变性与底层实现

文章目录 前言1 字符串类型的数据结构组成2 为什么要这么设计数据结构&#xff1f;3 为什么说字符串类型不可修改&#xff1f;4 如何实现字符串的修改&#xff1f;5 为什么字符串修改的字面量用单引号&#xff1f;6 如何判断字符串的修改新建了一个字符串&#xff1f;7 字符串的…...

采购订单审批和取消例子

文章目录 1 Introduction2 Example 1 Introduction This is a exmaple for releaseing po and reseting po. 2 Example DATA:lw_in TYPE zmms015,lw_out TYPE zmms015_out,lt_head LIKE TABLE OF ZMMT003_head,lw_head TYPE ZMMT003_head,lt_item TYPE zmmt003_item_t,lt…...

PHP:集成Xunsearch生成前端搜索骨架

如果是安装宝塔&#xff0c;我们在集成xunsearch的时候就会比较简单&#xff0c;后面我们在介绍其他的接入方式&#xff1b; 首先我们进入到宝塔管理后台&#xff1a;【软件商店】-【输入xun】-【点击xunsearch】直接安装即可 安装成功之后&#xff0c;会自动在www/server中创…...

ThreadLocal详解,与 HashMap 对比

ThreadLocal原理&#xff0c;使用注意事项&#xff0c;解决哈希冲突方式->和HashMap对比 ThreadLocal 原理&#xff1a; ThreadLocal 是 Java 中的一个线程级别的变量&#xff0c;它允许您在不同线程之间存储和访问相同变量的不同副本&#xff0c;每个线程都拥有自己的副本&…...

flask流式接口

一、接口封装 from flask import Flask, request, Response, stream_with_context app Flask(__name__) app.logger.disabled Truedef chat_stream_(prompt):for new_text in [1,2,3]:yield new_textapp.route(/chat_stream, methods[POST]) def chat_stream():prompt requ…...

MatLab命令行常用命令记录

文章目录 MatLab常用命令行MatLab常用按键标点说明 MatLab常用命令行 Matlab常用命令用来管理目录、命令、函数、变量、工作区、文件及窗口。常用命令如下表 命令作用cd显示或改变当前文件夹load加载指定文件的变量dir显示当前文件夹或指定目录下的文件diary日志文件命令type…...

Linux —— MySQL操作(1)

一、用户与权限管理 1.1 创建与赋予权限 create user peter% identified by 123465 # 创建用户 peter&#xff0c;# %&#xff1a;允许所有用户登录这个用户访问数据库 刚创建的新用户是什么权限都没有&#xff0c;需要赋予权限 grant select on mysql.* to peter%; # 赋予…...

TCP四次握手与http协议版本区别

TCP四次挥手(图解)-为何要四次挥手 当客户端和服务器通过三次握手建立了TCP连接以后&#xff0c;当数据传送完毕&#xff0c;肯定是要断开TCP连接的啊。那 对于TCP的断开连接&#xff0c;这里就有了神秘的“四次挥手”。 第一次挥手&#xff1a;主机1&#xff08;可以使客户端…...

【机器学习】洞悉数据奥秘:决策树算法在机器学习中的魅力

在机器学习的分类和回归问题中&#xff0c;决策树是一种广泛使用的算法。决策树模型因其直观性、易于理解和实现&#xff0c;以及处理分类和数值特征的能力而备受欢迎。本文将解释决策树算法的概念、原理、应用、优化方法以及未来的发展方向。 &#x1f680;时空传送门 &#x…...

redis(17):什么是布隆过滤器?如何实现布隆过滤器?

1 布隆过滤器介绍 布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否在一个集合中。它基于位数组和多个哈希函数的原理,可以高效地进行元素的查询,而且占用的空间相对较小,如下图所示: 根据 key 值计算出它的存储位置,然后将此位置标…...