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

深度学习框架PyTorch

第一章:机器学习基本概念(附代码)
第二章:KNN算法:从思想到实现(附代码)
第三章:决策树算法:从思想到实现(附代码)
第四章:机器学习简单案例:如何预测客户是否流失(附代码)
第五章:理解数据标准化处理
第六章:线性模型:从原理到实践
第七章:KMeans 聚类算法:从理论到实践(附代码)
第八章:搞懂线性回归与梯度下降原理(附代码)
第九章:深度学习框架PyTorch
第十章:逻辑回归:从基础到实践(附代码)
第十一章:集成学习(一):从理论到实战(附代码)
第十二章:集成学习(二):从理论到实战(附代码)
第十三章:机器学习算法大比武(附代码)
第十四章:理解并解决欠拟合与过拟合
第十五章:机器学习案例:幸福感指数预测

一、框架概览

深度学习框架:是一个针对深度学习的科学计算库,在深度学习领域,以下是当前市场上几个主流的深度学习框架:

  • TensorFlow

    • 上一代框架:起始于静态图时代,为早期深度学习的发展做出了巨大贡献。
    • 特点:执行性能优异,但模型构建与调试相对复杂。
  • PyTorch

    • 市场主导者:尤其是在处理大规模模型时,其市场占有率接近100%。
    • 动态图优势:虽然执行效率稍逊一筹,但编程效率极高,使得模型搭建变得像编写普通Python代码一样简单。
    • 稳定性强:API接口长期保持稳定,升级主要集中在内部优化而非外部接口变动。
  • PaddlePaddle

    • 国产品牌:由百度推出,作为战略储备,在国内具有一定的影响力。

二、PyTorch与NumPy

NumPy:是一个通用科学计算库,PyTorch深度学习框架是一个 NumPy++ ,

  1. 实现了 NumPy 的所有功能、使用习惯、命名等!
  2. 实现了自动求导!
  3. 实现常用的模块(层,优化器…)

三、PyTorch框架详解

3.1 安装PyTorch

根据你的硬件配置选择安装GPU或CPU版本的PyTorch:

  • GPU版本
    • 前提条件:需要NVIDIA独立显卡(显存≥4G),并确保驱动程序是最新的。
    • 安装命令
      pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124
      
  • CPU版本
    • 安装命令
      pip3 install torch torchvision -i https://mirrors.aliyun.com/pypi/simple/
      

3.2 常用命令示例

import torch# 查看PyTorch版本
print(torch.__version__)# 检查CUDA是否可用
if torch.cuda.is_available():print("CUDA is available.")# 获取当前设备名称print(torch.cuda.get_device_name())# 将矩阵转换为张量
t = torch.tensor(data=X_train, dtype=torch.float32)# 生成随机数
random_num = torch.randint(low=100, high=1000, size=(1,), dtype=torch.float32)
# 13行1列
rand_tensor = torch.randn(13, 1, dtype=torch.float32)

三、计算体系

现代计算体系分为两大部分:

  • 基于CPU+内存的传统计算:数据在内存中存放,通过CPU控制进行计算
  • 基于GPU+显存的加速计算:数据在显存中存放,通过GPU进行控制计算

需要注意的是,参与计算的数据必须位于相同的设备中。

示例代码

以下是一些张量的基本操作的例子:

import random
import numpy as np
import torch# 创建一个包含30个随机分数的列表,并转换为NumPy数组和PyTorch张量
scores = [random.randint(a=0, b=100) for _ in range(30)]
type(scores) #输出list
arr = np.array(scores)
#输出array([36, 55, 68, 82, 91, 29, 48, 46, 37, 60, 72, 78, 61, 32,  7, 48, 55,0,  8, 80, 60, 52, 81, 41, 30, 43, 35, 47, 57, 26])
type(arr) #输出numpy.ndarray
t = torch.tensor(data=scores, dtype=torch.float32)
#输出tensor([36., 55., 68., 82., 91., 29., 48., 46., 37., 60., 72., 78., 61., 32.,7., 48., 55.,  0.,  8., 80., 60., 52., 81., 41., 30., 43., 35., 47.,57., 26.])# 计算方差的不同方式
print(arr.var(), arr.var(ddof=1))  # NumPy默认计算样本方差
#输出(504.938888888889, 522.3505747126438)
print(t.var(), t.var(correction=0))  # PyTorch默认计算总体方差
#输出(tensor(522.3506), tensor(504.9389))np.arange(12).reshape(3, 4)
#输出array([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]])
torch.arange(12).reshape(3, 4)
#输出tensor([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]])# 创建相同形状的NumPy数组和PyTorch张量
np.ones(shape=(2, 3))
#输出array([[1., 1., 1.],[1., 1., 1.]])
torch.ones(2, 3)
#输出tensor([[1., 1., 1.],[1., 1., 1.]])np.linalg.norm(arr) #输出294.4299577149037
torch.linalg.norm(t) #输出tensor(294.4300)# 创建线性空间
np.linspace(start=-5, stop=5, num=100)
#输出array([-5.        , -4.8989899 , -4.7979798 , -4.6969697 , -4.5959596 ,-4.49494949, -4.39393939, -4.29292929, -4.19191919, -4.09090909,-3.98989899, -3.88888889, -3.78787879, -3.68686869, -3.58585859,-3.48484848, -3.38383838, -3.28282828, -3.18181818, -3.08080808,-2.97979798, -2.87878788, -2.77777778, -2.67676768, -2.57575758,-2.47474747, -2.37373737, -2.27272727, -2.17171717, -2.07070707,-1.96969697, -1.86868687, -1.76767677, -1.66666667, -1.56565657,-1.46464646, -1.36363636, -1.26262626, -1.16161616, -1.06060606,-0.95959596, -0.85858586, -0.75757576, -0.65656566, -0.55555556,-0.45454545, -0.35353535, -0.25252525, -0.15151515, -0.05050505,0.05050505,  0.15151515,  0.25252525,  0.35353535,  0.45454545,0.55555556,  0.65656566,  0.75757576,  0.85858586,  0.95959596,1.06060606,  1.16161616,  1.26262626,  1.36363636,  1.46464646,1.56565657,  1.66666667,  1.76767677,  1.86868687,  1.96969697,2.07070707,  2.17171717,  2.27272727,  2.37373737,  2.47474747,2.57575758,  2.67676768,  2.77777778,  2.87878788,  2.97979798,3.08080808,  3.18181818,  3.28282828,  3.38383838,  3.48484848,3.58585859,  3.68686869,  3.78787879,  3.88888889,  3.98989899,4.09090909,  4.19191919,  4.29292929,  4.39393939,  4.49494949,4.5959596 ,  4.6969697 ,  4.7979798 ,  4.8989899 ,  5.        ])
torch.linspace(start=-5, end=5, steps=100)
#输出tensor([-5.0000, -4.8990, -4.7980, -4.6970, -4.5960, -4.4949, -4.3939, -4.2929,-4.1919, -4.0909, -3.9899, -3.8889, -3.7879, -3.6869, -3.5859, -3.4848,-3.3838, -3.2828, -3.1818, -3.0808, -2.9798, -2.8788, -2.7778, -2.6768,-2.5758, -2.4747, -2.3737, -2.2727, -2.1717, -2.0707, -1.9697, -1.8687,-1.7677, -1.6667, -1.5657, -1.4646, -1.3636, -1.2626, -1.1616, -1.0606,-0.9596, -0.8586, -0.7576, -0.6566, -0.5556, -0.4545, -0.3535, -0.2525,-0.1515, -0.0505,  0.0505,  0.1515,  0.2525,  0.3535,  0.4545,  0.5556,0.6566,  0.7576,  0.8586,  0.9596,  1.0606,  1.1616,  1.2626,  1.3636,1.4646,  1.5657,  1.6667,  1.7677,  1.8687,  1.9697,  2.0707,  2.1717,2.2727,  2.3737,  2.4747,  2.5758,  2.6768,  2.7778,  2.8788,  2.9798,3.0808,  3.1818,  3.2828,  3.3838,  3.4848,  3.5859,  3.6869,  3.7879,3.8889,  3.9899,  4.0909,  4.1919,  4.2929,  4.3939,  4.4949,  4.5960,4.6970,  4.7980,  4.8990,  5.0000])

GPU的使用

# 检测GPU是否可用
device = "cuda" if torch.cuda.is_available() else "cpu"
t1 = torch.randn(2, 3)
t1 # 输出tensor([[-0.2833,  0.8345,  1.6734],[ 2.1552, -0.2647, -1.6260]])
t2 = torch.randn(2, 3, device=device)
t2 #输出tensor([[ 1.4996,  0.5895, -1.5476], [ 0.2048,  0.2137,  1.6660]], device='cuda:0')
t1 + t2
#输出异常 RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
t1.to(device=device) + t2 # 输出tensor([[ 1.2162,  1.4240,  0.1258],[ 2.3600, -0.0510,  0.0400]], device='cuda:0')
t1 # 输出tensor([[-0.2833,  0.8345,  1.6734], [ 2.1552, -0.2647, -1.6260]])
t2.cpu() + t1 #输出tensor([[ 1.2162,  1.4240,  0.1258], [ 2.3600, -0.0510,  0.0400]])
t1 #输出tensor([[-0.2833,  0.8345,  1.6734], [ 2.1552, -0.2647, -1.6260]])
t1.cuda() # 输出tensor([[-0.2833,  0.8345,  1.6734], [ 2.1552, -0.2647, -1.6260]], device='cuda:0')

自动求导

def fn(x):"""原函数"""return x ** 2
def dfn(x):"""导函数"""return 2 * x
# 数学:常量
x1 = torch.randn(1)
# 数学:变量
x1 # 输出tensor([-0.4863])
# x2是一个变量,这个变量当前取值为 -0.4370
x2 = torch.randn(1, requires_grad=True)
x2 # 输出tensor([-0.4370], requires_grad=True)
# 当前值
x2.data # 输出tensor([-0.4370])
# 梯度值
print(x2.grad) # 输出None
y = x2 ** 2
y # 输出tensor([0.1909], grad_fn=<PowBackward0>)
y.backward()
x2.grad #输出tensor([-2.6218])
x2.grad.zero_() #输出tensor([0.])
x2.grad # 输出tensor([0.])

使用PyTorch的自动求导实现梯度下降法

steps = 1000
learning_rate = 1e-2
x = torch.randint(low=-1000, high=1001, size=(1,), dtype=torch.float32, requires_grad=True)
print(f"x初始值为:{x}")
for step in range(steps):# 1, 正向传播y = x ** 2# 2, 反向传播y.backward()# 3, 梯度下降x.data -= learning_rate * x.grad# 4, 清空梯度x.grad.zero_()print(f"优化了{step+1}步,x为:{x}")
print(f"x最终值为:{x}")

输出:

x初始值为:tensor([-262.], requires_grad=True)
优化了1步,x为:tensor([-256.7600], requires_grad=True)
优化了2步,x为:tensor([-251.6248], requires_grad=True)
优化了3步,x为:tensor([-246.5923], requires_grad=True)
......
优化了716步,x为:tensor([-0.0001], requires_grad=True)
优化了717步,x为:tensor([-0.0001], requires_grad=True)
优化了718步,x为:tensor([-0.0001], requires_grad=True)
优化了719步,x为:tensor([-0.0001], requires_grad=True)
优化了720步,x为:tensor([-0.0001], requires_grad=True)
......
优化了998步,x为:tensor([-4.5912e-07], requires_grad=True)
优化了999步,x为:tensor([-4.4994e-07], requires_grad=True)
优化了1000步,x为:tensor([-4.4094e-07], requires_grad=True)
x最终值为:tensor([-4.4094e-07], requires_grad=True)

深度学习本质

统计学项目:

  • 想去研究总体/全量的一些情况,但是不能直接去研究
  • 退而求其次,对总体进行采样,试图用采样得到的数据来估计总体
  • 人工智能的本质是以小博大!
  • 使用样本来估计总体!

对样本的统计量:

  • 均值
    - mu = sum(x) / len(x)
  • 方差
    - sum((x - mu) ** 2) / len(x)
  • 标准差
    - (sum((x - mu) ** 2) / len(x)) ** 0.5

对总体的统计量:

  • 均值
    - mu = sum(x) / len(x)
  • 方差
    - sum((x - mu) ** 2) / (len(x) - 1)
  • 标准差
    - (sum((x - mu) ** 2) / (len(x) - 1)) ** 0.5

实际工作中,数据量非常大,两者没什么区别!!!随便用即可!!!

相关文章:

深度学习框架PyTorch

第一章&#xff1a;机器学习基本概念&#xff08;附代码&#xff09; 第二章&#xff1a;KNN算法&#xff1a;从思想到实现&#xff08;附代码&#xff09; 第三章&#xff1a;决策树算法&#xff1a;从思想到实现&#xff08;附代码&#xff09; 第四章&#xff1a;机器学习简…...

TCP可靠传输的ARQ协议

基本知识 ARQ&#xff08;Automatic Repeat-reQuest&#xff09;协议主要包含&#xff1a;停等ARQ协议、连续ARQ协议&#xff0c;其中连续ARQ协议是为了解决停等ARQ协议信道利用率低的问题&#xff0c;目前传统的连续ARQ协议有回退N帧ARQ协议、选择性重传ARQ协议。 注意&#…...

Windows环境安装Kafka(集群版)

大家好&#xff0c;最近在准备Java面试&#xff0c;复习到Kafka的相关知识&#xff0c;一时兴起&#xff0c;就想在自己的Windows笔记本上安装一个Kafka集群。下面就记录一下安装步骤。 工具分享 Offset Explorer&#xff1a;Kafka可视化工具 下载地址&#xff1a;https://ww…...

服务器虚拟化(详解)

服务器虚拟化是一种技术&#xff0c;通过将物理服务器的硬件资源&#xff08;如CPU、内存、存储、网络等&#xff09;抽象化并分割成多个虚拟机&#xff08;VM&#xff09;&#xff0c;每个虚拟机可以独立运行不同的操作系统和应用程序。虚拟化使得资源使用更加高效&#xff0c…...

今日写题work05

题目&#xff1a;用队列实现栈 思路 队列的特点是先进先出&#xff0c;而栈的特点是后进先出。所以想要用队列实现模拟栈&#xff0c;我们可以使用两个队列&#xff0c;一个队列负责压栈&#xff0c;一个队列负责出栈。压栈很简单就是检空再调用队列的push就好&#xff0c;那出…...

DeepSeek模型架构及优化内容

DeepSeek v1版本 模型结构 DeepSeek LLM基本上遵循LLaMA的设计&#xff1a; 采⽤Pre-Norm结构&#xff0c;并使⽤RMSNorm函数. 利⽤SwiGLU作为Feed-Forward Network&#xff08;FFN&#xff09;的激活函数&#xff0c;中间层维度为8/3. 去除绝对位置编码&#xff0c;采⽤了…...

145,【5】 buuctf web [GWCTF 2019]mypassword

进入靶场 修改了url后才到了注册页面 注测后再登录 查看源码 都点进去看看 有个反馈页面 再查看源码 又有收获 // 检查$feedback是否为数组 if (is_array($feedback)) {// 如果是数组&#xff0c;弹出提示框提示反馈不合法echo "<script>alert(反馈不合法);<…...

Beszel监控Docker安装

一、Beszel Hub安装 #Beszel Hub安装 mkdir -p ./beszel_data && \ docker run -d \--name beszel \--restartunless-stopped \-v ./beszel_data:/beszel_data \-p 8090:8090 \henrygd/beszel#创建账号 账号/密码&#xff1a;adminadmin.com/adminadmin.com 二、Besz…...

Ansible批量配置服务器免密登录步骤详解

一、准备工作 192.168.85.138 安装ansible&#xff0c;计划配置到139的免密 192.168.85.139 待配置免密 1. 生成SSH密钥对 在Ansible控制节点生成密钥对&#xff0c;用于后续免密认证&#xff1a; ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa 全部回车默认&#xff0c;无…...

使用llama.cpp在gpu和cpu上运行deepseek-r1 7b的性能对比

使用deepseek-r1 7b模型的q5km量化版本进行测试, gpu上的token解码速度是cpu的近8倍. 测试环境: ubuntu22.04 x86llama.cpp cpu intel 10750h 4.41 tokens / s model size params backend threads test t/s qwen2 7B Q5_K - Medium 5.07 GiB 7.62 B CPU 6 pp512 …...

1.【BUUCTF】[SUCTF 2019]EasyWeb

进入题目页面如下 给出源码开始代码审计 <?php // 定义一个名为 get_the_flag 的函数&#xff0c;该函数主要处理文件上传逻辑 function get_the_flag(){// 构造用户上传文件的目录&#xff0c;目录名是 "upload/tmp_" 加上客户端 IP 地址的 MD5 哈希值$userdir…...

GMSL 实例1:当 MAX96717 遇上 MAX96724,打通 Camera 视频数据传输

新年伊始&#xff0c;继 Deepseek 在 AI 圈掀起风波之后。比亚迪在2月10日发布会上重磅官宣&#xff1a;全系车型将搭载自研的高阶智驾系统“天神之眼”&#xff0c;覆盖从10万元级入门车型到高端豪华车型的所有范围。此举如一颗重磅炸弹投向当前一卷再卷的新能源汽车赛道&…...

2025有哪些关键词优化工具好用

越来越多的企业和个人开始意识到搜索引擎优化&#xff08;SEO&#xff09;对于网站曝光和业务增长的重要性。在SEO优化的过程中&#xff0c;关键词优化占据着至关重要的地位。关键词是用户在搜索引擎中输入的词语&#xff0c;优化关键词有助于提高网站在搜索结果中的排名&#…...

Python常见面试题的详解6

1. 按字典 value 值排序 要点&#xff1a;对于给定字典&#xff0c;使用 sorted() 函数结合 items() 方法&#xff0c;依据 value 进行排序&#xff0c;也可以定义一个通用函数&#xff0c;支持按 value 升序或降序排序。示例&#xff1a; python d {a: 1, b: 2, c: 3, d: …...

宝塔和docker的区别

宝塔面板 vs Docker&#xff1a;区别、场景与互补使用指南 eepseek回答宝塔和docker的区别 好的&#xff0c;我现在需要回答用户关于宝塔面板和Docker之间的区别的问题。首先&#xff0c;我需要明确这两个工具各自的定义、功能以及它们适用的场景&#xff0c;这样才能准确比较…...

vscode调试redis

系统&#xff1a;ubuntu redis&#xff1a;redis-6.0.3 1.在vs中安装c/c编译插件 2.用vscode打开redis-6.0.3 3.在菜单中找到run->Add Configuration… 4.会在目录中生成一个./vscode目录&#xff0c;里面包含launch.json,修改launch.json中的program:${workspaceFolder}…...

tcp/ip协议设置参数,tcp/ip协议6设置

TCP/IP协议设置参数主要涉及到IP地址、子网掩码、网关地址以及DNS服务器地址等关键参数。这些参数的配置确保了网络设备能够正确地接入互联网并与其他设备进行通信。以下是对这些参数设置的详细说明&#xff1a; 1. IP地址 定义&#xff1a;IP地址是互联网中用于唯一标识每一…...

计算机网络原理试题二

一、单选 1.(单选题,5分)以下关于计算机网络定义的描述中,错误的是 A.以能够相互共享资源的方式互联起来的自治计算机系统的集合 B.计算机资源主要指计算机的CPU、内存和操作系统 C.互联的计算机既可以联网工作&#xff0c;也可以脱网单机工作 D.联网计算机之间的通信必须遵循…...

#渗透测试#批量漏洞挖掘#致远互联AnalyticsCloud 分析云 任意文件读取

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…...

企业文件共享中的权限管理与安全风险防范

在企业的日常运营中&#xff0c;文件共享是必不可少的一项工作。然而&#xff0c;文件共享过程中如果权限管理不当&#xff0c;极易引发安全风险&#xff0c;导致企业敏感信息泄露。因此&#xff0c;加强文件共享中的权限管理与安全风险防范&#xff0c;对于保障企业信息安全至…...

2025智能硬件售后服务管理系统选择的六大标准

2025智能硬件售后服务管理系统选择的六大标准 随着2025年的到来&#xff0c;智能硬件行业正以前所未有的速度发展&#xff0c;产品迭代加速&#xff0c;用户需求日益多样化。在这一背景下&#xff0c;售后服务管理系统的选择成为了智能硬件厂商能否在激烈的市场竞争中脱颖而出…...

C++ references

C复杂在于提供了太多的内存模型 或者说&#xff1a; 提供了两种东西&#xff1a; 1、可以放对象的地方&#xff1a; 堆栈堆全局数据区里 2、提供了很多访问对象的方式 变量是对象指针访问对象引用来访问对象 3 * 3 9 种访问对象的方式 规则 引用一般初始化&#xff0…...

STM32 RCC功能说明 复位和时钟控制RCC

目录 背景 RCC配置时钟主要涉及两方面 程序 第1步、RCC默认初始化 第2步、等待HSE工作稳定 第3步、设置PLL时钟源以及倍频数 第4步、设置AHB总线时钟&#xff08;HCLK&#xff09; 第5步、设置PCLK1(APB1总线) 第6步、设置PCLK2(APB2总线) 第7步、FLASH存储器的配置 …...

2024年终总结和2025年规划

2024年的主线是AI基础的学习和读书&#xff0c;虽然AI学习花费了更多的时间&#xff0c;但是读书长久看来于我是更重要的事情&#xff0c;哈哈哈&#xff0c;因此先简单回顾一下读书记忆&#xff0c;回顾我的2024&#xff0c;再展望一下我的2025. 我的2024年记忆 读万卷书&am…...

Day2 25/2/15 SAT

【一周刷爆LeetCode&#xff0c;算法大神左神&#xff08;左程云&#xff09;耗时100天打造算法与数据结构基础到高级全家桶教程&#xff0c;直击BTAJ等一线大厂必问算法面试题真题详解&#xff08;马士兵&#xff09;】https://www.bilibili.com/video/BV13g41157hK?p4&v…...

新版电脑通过wepe安装系统

官方下载链接 WIN10下载 WIN11下载 微PE 启动盘制作 1&#xff1a;选择启动盘的设备 2&#xff1a;选择对应的U盘设备&#xff0c;点击安装就可以&#xff0c;建议大于8g 3&#xff1a;在上方链接下载需要安装的程序包&#xff0c;放入启动盘&#xff0c;按需 更新系统 …...

分享一个使用的音频裁剪chrome扩展-Ringtone Maker

一、插件简介 铃声制作器是一个简单易用的 Chrome 扩展&#xff0c;专门用于制作手机铃声。它支持裁剪音频文件的特定片段&#xff0c;并将其下载为 WAV 格式&#xff0c;方便我们在手机上使用。无论是想从一段长音频中截取精彩部分作为铃声&#xff0c;还是对现有的音频进行个…...

Managed Lustre 和 WEKA:高性能文件系统的对比与应用

Managed Lustre 和 WEKA&#xff1a;高性能文件系统的对比与应用 1. 什么是 Managed Lustre&#xff1f;主要特点&#xff1a;适用场景&#xff1a; 2. 什么是 WEKA&#xff1f;主要特点&#xff1a;适用场景&#xff1a; 3. Managed Lustre 和 WEKA 的对比4. 如何选择 Managed…...

自己制作网站教程方法

SaaS建站&#xff0c;作为一种创新的网站构建模式&#xff0c;通过将网站建设所需的复杂软硬件资源整合到云端&#xff0c;为用户带来了前所未有的便捷性、高效性和灵活性&#xff0c;彻底颠覆了传统网站建设的固有模式&#xff0c;为用户提供了一个更为理想且适应性强的建站解…...

基于角色访问控制的UML 表示02

一个用户可以成为很多角色的成员&#xff0c;一个角色可以有许多用户。类似地&#xff0c;一个角色可以有多个权限&#xff0c;同一个权限可以被指派给多个角色。每个会话把一个用户和可能的许多角色联系起来。一个用户在激发他或她所属角色的某些子集时&#xff0c;建立了一个…...

平面与平面相交算法杂谈

1.前言 空间平面方程&#xff1a; 空间两平面如果不平行&#xff0c;那么一定相交于一条空间直线&#xff0c; 空间平面求交有多种方法&#xff0c;本文进行相关讨论。 2.讨论 可以联立方程组求解&#xff0c;共有3个变量&#xff0c;2个方程&#xff0c;而所求直线有1个变量…...

28 在可以控制 postgres 服务器, 不知道任何用户名的情况下怎 进入 postgres 服务器

前言 最近有这样的一个需求, 有一个 postgres 服务器 但是 不知道 他的任何的用户名密码, 但是我想要查询这台 postgres 服务器 然后 基于这个需求, 我们看一下 怎么来处理 pg_hba.conf 认证方式修改为 trust 首先将 postgres 服务器的认证方式修改为 trust 这时候 …...

Java短信验证功能简单使用

注册登录阿里云官网&#xff1a;https://www.aliyun.com/ 搜索短信服务 自己一步步申请就可以了 开发文档&#xff1a; https://next.api.aliyun.com/api-tools/sdk/Dysmsapi?version2017-05-25&languagejava-tea&tabprimer-doc 1.引入依赖 <dependency>…...

哈希表(典型算法思想)—— OJ例题算法解析思路

目录 一、1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 算法代码&#xff1a; 1. 问题描述 2. 核心思路 3. 代码实现思路 &#xff08;1&#xff09;初始化哈希表 &#xff08;2&#xff09;遍历数组 &#xff08;3&#xff09;返回结果 4. 时间复杂度分析 …...

Linux软件编程——标准IO(2025.2.14)

目录 一、操作系统 1.重点内容 2.学习方法 二、文件操作 1. 必要性 2. Linux文件类型 3. Linux文件操作方法 4.文件操作思想 5.标准IO 6.函数接口 &#xff08;1&#xff09;fopen打开文件 &#xff08;2&#xff09;fputc字符写入文件 &#xff08;3&#x…...

YOLOV8的学习记录(二) yolo8的几个内置模型简介

YOLOv8 是一个多功能的计算机视觉框架&#xff0c;支持多种任务&#xff0c;包括分类&#xff08;Classify&#xff09;、检测&#xff08;Detect&#xff09;、旋转目标检测&#xff08;OBB&#xff09;、姿态估计&#xff08;Pose&#xff09;、实例分割&#xff08;Segment&…...

初阶c语言(练习题,猜随机数,关机程序)

目录 第一题&#xff0c;使用函数编写一个随机数&#xff0c;然后自己猜&#xff0c;猜随机数 第二道题&#xff08;关机程序&#xff09; 实现代码&#xff08;关机程序&#xff09; 实现代码&#xff08;猜数字&#xff09; 前言&#xff1a; 学习c语言&#xff0c;学习…...

中上211硕对嵌入式AI感兴趣,如何有效规划学习路径?

今天给大家分享的是一位粉丝的提问&#xff0c;中上211硕对嵌入式AI感兴趣&#xff0c;如何有效规划学习路径&#xff1f; 接下来把粉丝的具体提问和我的回复分享给大家&#xff0c;希望也能给一些类似情况的小伙伴一些启发和帮助。 同学提问&#xff1a; 中上211&#xff0c;…...

如何在wps中使用AI

1、访问官网&#xff1a;https://ai.wps.cn 2、 下载WPS AI客户端 3、本地安装&#xff0c; 安装时需要关闭wps 安装完成后打开wps&#xff0c;菜单中新增OfficeAI 点击【设置】按钮&#xff0c;弹出如下窗口 选择【大模型设置】中 模型平台选择&#xff08;硅基流程&#xf…...

单例设计模式

简介 单例模式是设计模式中的创建型设计模式&#xff0c;用来保证一个类只能创建一个对象&#xff0c;通常包括饿汉式单例、懒汉式单例。 一、饿汉式单例 饿汉式单例是在类加载时就进行创建的&#xff0c;如&#xff1a; public class Apple {// 由于是单例&#xff0c;因…...

离线量化算法和工具 --学习记录1

离线量化算法和工具 一、离线量化的基础概念1.1、基本流程1.2、量化的优点和缺点1.3、如何生产一个硬件能跑的量化模型1.4、PTQ的概念以及和QAT的区别1.5、离线量化的标准流程1.6、校准数据的选择1.7、量化模式的选择1.8、校准方式的选择1.9、量化算法的选择1.10、写入量化参数…...

Redis 03章——10大数据类型概述

一、which10 &#xff08;1&#xff09;一图 &#xff08;2&#xff09;提前声明 这里说的数据类型是value的数据类型&#xff0c;key的类型都是字符串 官网&#xff1a;Understand Redis data types | Docs &#xff08;3&#xff09;分别是 1.3.1redis字符串&#xff0…...

芯麦GC6208:革新摄像机与医疗设备的智能音频解决方案

引言 在现代科技的推动下&#xff0c;音频设备和图像处理在各个领域的应用日益广泛。芯麦科技的GC6208是一款创新的音频处理芯片&#xff0c;具有高性能和多功能性&#xff0c;适用于摄像机、医疗设备等多种产品。本文将探讨GC6208在这些领域中的应用及其带来的优势。 1. 在摄…...

代码随想录算法营Day39 | 416. 分割等和子集

416. 分割等和子集 这题换句话说就是是否能找出一个子集&#xff0c;使这个子集的总和等于数组总和的一半&#xff0c;数组里每个元素只能选一次。我们确立一个dp数组&#xff0c;长度为数组总和的half1&#xff0c;内容为False。索引表示和&#xff0c;索引里的内容表示该数是…...

【前端】自己从头实现一个gpt聊天页面

预览 最小化功能点 主界面&#xff1a;侧边栏会话历史、聊天窗口发送和断开。侧边栏&#xff1a;展示会话列表&#xff0c;每个会话包含多条聊天记录&#xff0c; 通过localstorage本地储存和恢复&#xff0c;会话需要重命名和删除。聊天框&#xff1a;区分一下发送者和回答者…...

浅说树形dp

文章目录 前言树形dp的转移方式树形dp的使用的场景小结 初步感知——简单的树形dp例题1例题2 深入分析——树形dp的经典模型最大独立集最小点覆盖最小支配集树上直径 前言 因为树的形式非常适合递归&#xff0c;他所带来的访问顺序也是非常符合拓扑排序的&#xff0c;故而在处…...

Matlab 多项式曲线拟合(三维)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 对于高维空间曲线的拟合,参数化是一种非常好的方式,可以让我们很容易得到我们想要的目标曲线。 假设给定一组数据点 ( u i ​ , x i ​ ) 、 ( u i ​...

大语言模型推理中的显存优化 有哪些

大语言模型推理中的显存优化 有哪些 目录 大语言模型推理中的显存优化 有哪些显存优化背景Offloading/Checkpoint原理举例显存优化背景 在大语言模型推理时,显存是显著瓶颈。以开源的BLOOM 176B模型为例,在8张A100计算卡上,通常对话设置下仅能进行批量为10左右的推理。为缓…...

机器学习:k均值

所有代码和文档均在golitter/Decoding-ML-Top10: 使用 Python 优雅地实现机器学习十大经典算法。 (github.com)&#xff0c;欢迎查看。 在“无监督学习”中&#xff0c;训练样本的标记信息是未知的&#xff0c;目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律&…...

【图像加密解密】空间混沌序列的图像加密解密算法复现(含相关性检验)【Matlab完整源码 2期】

1、说明 本文给出详细完整代码、完整的实验报告和PPT。 环境&#xff1a;MATLAB2019a 复现文献&#xff1a;[1]孙福艳,吕宗旺.Digital image encryption with chaotic map lattices[J].Chinese Physics B,2011,20(04):136-142. 2、部分报告内容 3 部分源码与运行步骤 3.1 部…...