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

2025-04-23 Python深度学习3——Tensor

文章目录

  • 1 张量
    • 1.1 数学定义
    • 1.2 PyTorch中的张量
  • 2 创建 Tensor
    • 2.1 直接创建
      • **`torch.tensor()`**
      • **`torch.from_numpy()`**
    • 2.2 依据数值创建
      • **`torch.zeros() / torch.zeros_like()`**
      • **`torch.ones() / torch.ones_like()`**
      • **`torch.full() / torch.full_like()`**
      • **`torch.arange() / torch.linspace`**
      • **`torch.eye()`**
    • 2.3 依概率分布创建张量
      • **`torch.normal()`**
      • **`torch.rand() / torch.rand_like()`**
      • **`torch.randint() / torch.randint_like()`**
      • **`torch.randperm()`**
      • **`torch.bernoulli()`**
  • 3 张量操作
    • 3.1 拼接
      • **`torch.cat()`**
      • **`torch.stack()`**
    • 3.2 切分
      • **`torch.chunk()`**
      • **`torch.split()`**
    • 3.3 索引
      • **`torch.index_select()`**
      • **`torch.masked_select()`**
    • 3.4 变换
      • **`torch.reshape()`**
      • **`torch.transpose()`**
      • **`torch.t()`**
      • **`torch.squeeze()`**
      • **`torch.unsqueeze()`**
  • 4 线性回归案例

本文环境:

  • Pycharm 2025.1
  • Python 3.12.9
  • Pytorch 2.6.0+cu124

1 张量

1.1 数学定义

  • 张量是多维数组的泛化形式,涵盖标量(0维)、向量(1维)、矩阵(2维)及更高维结构。
  • 示例:
    • RGB 图像用三维张量表示,维度为 (高度, 宽度, 通道数),其中通道对应红、绿、蓝三色。
image-20250422113009830

1.2 PyTorch中的张量

​ PyTorch 中的张量不仅是多维数组,还是自动求导(Autograd)的核心组件。PyTorch 0.4.0 之前,Variable类型封装张量以实现自动求导;0.4.0后合并到Tensor中,简化了API。

Variable

​ Variable 是 torch.autograd 中的数据类型,主要用于封装 Tensor,进行自动求导。

  • data:被包装的 Tensor。
  • grad:data 的梯度。
  • grad_fn:创建 Tensor 的 Function,是自动求导的关键。
  • requires_grad:指示是否需要梯度。
  • is leaf:指示是否是叶子结点(张量)。
image-20250422113219061

​ PyTorch0.4.0 版开始,Variable 并入 Tensor。

  • dtype:张量的数据类型,如 torch.FloatTensortorch.cuda.FloatTensor
  • shape:张量的形状,如 (64, 3, 224, 224)。
  • device:张量所在设备,GPU/CPU,是加速的关键。
image-20250422113342736

数据类型分类

  • 浮点型:torch.float16torch.float32(常用)、torch.float64
  • 整型:torch.int8torch.uint8torch.int16torch.int32torch.int64(标签常用)。
  • 布尔型:torch.bool

2 创建 Tensor

2.1 直接创建

torch.tensor()

image-20250422114533426

​ 功能:直接创建张量。

  • data:输入数据(列表或 NumPy 数组)。
  • dtype:数据类型(默认与输入一致)。
  • device:设备(如cuda:0)。
  • requires_grad:是否需要梯度(默认False)。
  • pin_memory:是否锁页内存(通常False)。
import torch
import numpy as nparr = np.ones((3, 3))
t = torch.tensor(arr, device='cuda:0', requires_grad=True)t
image-20250422114441567

torch.from_numpy()

image-20250422115234275

​ 功能:从 numpy 创建 tensor。

​ 特点:与 NumPy 数组共享内存,修改一方会影响另一方。

image-20250422114702598
arr = np.array([[1, 2, 3], [4, 5, 6]])
t = torch.from_numpy(arr)arr, t
image-20250422114920132

​ 修改 arr 中的数据后,t 中的数据也发生变化。

arr[0, 0] = -1arr, t
image-20250422114954710

2.2 依据数值创建

torch.zeros() / torch.zeros_like()

image-20250422115801857 image-20250422120030828

​ 功能:依 size 创建全 0 张量 / 依 input 形状创建全 0 张量。

  • torch.zeros()

    • size:张量的形状,如(3,3)、(3, 224, 224)。

    • out:将输出张量赋值给哪个张量。

    • layout:内存中布局形式,有 strided,sparse_coo 等。

  • torch.zeros_like()

    • input:创建与 input 同形状的全 0 张量。
    • memory_format:张量的内存格式,默认为 torch.preserve_format
out_t = torch.tensor([1])
t = torch.zeros((3, 3), out=out_t)  # out_t会被覆盖为全零t, out_t, id(t), id(out_t)  # out_t和t内存一致
image-20250422115440671

torch.ones() / torch.ones_like()

​ 功能:依 size 创建全 1 张量 / 依 input 形状创建全 1 张量。

​ 与 torch.zeros() / torch.zeros_like() 类似。

torch.full() / torch.full_like()

image-20250422120651090

​ 功能:依 size 创建全 fill_value 张量 / 依 input 形状创建全 fill_value 张量。

  • size:张量的形状,如 (3, 3)。
  • fill_value:张量的值。

torch.arange() / torch.linspace

image-20250423152230993 image-20250423152712595
  • torch.arange

    创建等差数列,区间为 [start, end),公差为 step

    torch.arange(2, 10, 2)
    
    image-20250423152806179
  • torch.linspace

    创建均分数列,区间为 [start, end],个数为 steps

    torch.linspace(2, 10, 9)
    
image-20250423152833851

torch.eye()

image-20250423153028584

​ 功能:创建单位对角矩阵(2维张量),默认为方阵。

  • n:每阵行数。
  • m:矩阵列数。
torch.eye(3, 5)
image-20250423153058152

2.3 依概率分布创建张量

torch.normal()

image-20250423154413627

​ 功能:生成正态分布(高斯分布)

  • mean:均值。
  • std:标准差。

依据 meanstd 的类型,可分为四种模式:

  1. mean为标量,std为标量(需指定size

    torch.normal(0, 1, size=(4, 1))
    
    image-20250423154002271
  2. mean为标量,std为张量(输出形状与std一致)

    mean = 1
    std = torch.arange(1, 5, dtype=torch.float)
    t = torch.normal(mean, std)mean, std, t
    
    image-20250423154251810
  3. mean为张量,std为标量(输出形状与mean一致)

    mean = torch.arange(1, 5, dtype=torch.float)
    std = 1
    t = torch.normal(mean, std)mean, std, t
    
    image-20250423154157605
  4. mean为张量,std为张量(每个元素从不同分布采样)

    mean = torch.arange(1, 5, dtype=torch.float)
    std = torch.arange(1, 5, dtype=torch.float)
    t = torch.normal(mean, std)mean, std, t
    
    image-20250423153711349

torch.randn() / torch.randn_like()

image-20250423154807318

​ 功能:生成标准正态分布 / 依 input 形状生成标准正态分布(均值为 0,方差为 1)。

  • size:张量的形状。
  • generator:用于采样的为随机数生成器。
torch.randn((3, 2))
image-20250423155502756

torch.rand() / torch.rand_like()

image-20250423155600645

​ 功能:在区间 [0, 1) 上,生成均匀分布。

torch.rand((3, 2))
image-20250423155534966

torch.randint() / torch.randint_like()

image-20250423155736068

​ 功能:区间 [low, high) 生成整数均匀分布。

  • low:区间左值。

  • high:区间右值。

  • size:张量的形状。

torch.randint(0, 10, (3, 2))
image-20250423155852375

torch.randperm()

image-20250423160121915

​ 功能:生成生成从 0 到 n-1 的随机排列。

  • n:张量的长度。
torch.randperm(8)
image-20250423160100807

torch.bernoulli()

image-20250423160237544

​ 功能:以 input 为概率,生成伯努力分布(0-1 分布,两点分布)

  • input:表示概率值的张量。
t, torch.bernoulli(t)
image-20250423160224724

3 张量操作

3.1 拼接

torch.cat()

image-20250423161029534

​ 功能:将张量按维度 dim 进行拼接,需要保证其他维度大小相同。

  • tensors:张量序列。
  • dim:要拼接的维度。
t = torch.ones((2, 3))t_0 = torch.cat([t, t], dim=0)
t_1 = torch.cat([t, t], dim=1)t_0, t_1
image-20250423161009976

torch.stack()

image-20250423161830867

​ 功能:在新创建的维度 dim 上进行堆叠,所有输入张量的形状必须一致。

  • tensors:张量序列。
  • dim:要堆叠的维度。
t1 = torch.tensor([1, 2])
t2 = torch.tensor([3, 4])
t_stack = torch.stack([t1, t2], dim=0)
t_stack, t_stack.shape
image-20250423161814422

3.2 切分

torch.chunk()

image-20250423162040909

​ 功能:将张量按维度 dim 进行平均切分。

​ 返回值:张量列表。

​ 注意事项:若不能整除,最后一份张量小于其他张量。

  • input:要切分的张量。
  • chunks:要切分的份数。
  • dim:要切分的维度。
t = torch.ones((2, 5))
list_t = torch.chunk(t, 2, dim=1)
list_t
image-20250423162102727

torch.split()

image-20250423162403459

​ 功能:将张量按维度 dim 进行切分。

​ 返回值:张量列表。

  • tensor:要切分的张量。
  • split_size_or_sections
    • 为 int 时,表示每一份的长度;
    • 为 list 时,list 中每个元素表示切割的长度,list 中元素之和与维度不等时报错。
  • dim:要切分的维度。
t = torch.ones((2, 5))
list_t = torch.split(t, 2, dim=1)
list_t
image-20250423162343432

3.3 索引

torch.index_select()

image-20250423162741366

​ 功能:在维度 dim 上,按 index 索引数据。

​ 返回值:依 index 索引数据拼接的张量。

  • input:要索引的张量。
  • dim:要索引的维度。
  • index:要索引数据的序号,类型需要为 long。
t = torch.randint(0, 9, size=(3, 3))
t_index = torch.tensor([0, 2])
t_select = torch.index_select(t, dim=1, index=t_index)t, t_select
image-20250423162726699

torch.masked_select()

image-20250423163607734

​ 功能:按 mask 中的 True 进行索引。

​ 返回值:一维张量。

  • input:要索引的张量。
  • mask:与 input 同形状的布尔类型张量。
t = torch.randint(0, 9, size=(3, 3))
t_mask = t.ge(5)  # ge is mean greater than or equal
t_select = torch.masked_select(t, mask=t_mask)t_mask, t_select
image-20250423163251997

3.4 变换

torch.reshape()

image-20250423163854660

​ 功能:变换张量形状。

​ 注意事项:当张量在内存中是连续时,新张量与 input 共享数据内存。

  • input:要变换的张量。
  • shape:新张量的形状。
t = torch.randperm(8)t, t.reshape((2, -1))  # -1 表示自动计算,(2, -1) 等价于 (2, 4)
image-20250423163834368

torch.transpose()

image-20250423164713625

​ 功能:交换张量的两个维度。

  • input:要变换的张量。
  • dim0:要交换的维度。
  • dim1:要交换的维度。
t = torch.rand((2, 3, 4))
t_transpose = torch.transpose(t, dim0=1, dim1=2)t, t_transpose
image-20250423164640828

torch.t()

image-20250423165304285

​ 功能:2 维张量转置,对矩阵而言,等价于 torch.transpose(input, 0, 1)

torch.squeeze()

image-20250423165757804

​ 功能:压缩长度为 1 的维度(轴)

  • dim
    • 若为 None,移除所有长度为 1 的轴;
    • 若指定维度,当且仅当该轴长度为 1 时,可以被移除。
t = torch.rand((1, 2, 3, 1))
t_sq = torch.squeeze(t)
t_sq0 = torch.squeeze(t, dim=0)
t_sq1 = torch.squeeze(t, dim=1)t.shape, t_sq.shape, t_sq0.shape, t_sq1.shape
image-20250423165653890

torch.unsqueeze()

image-20250423165825448

​ 功能:依据 dim 扩展维度。

  • dim:扩展的维度。

4 线性回归案例

import torch
import matplotlib.pyplot as plt# 生成随机数据点,x为0-10之间的随机数
x = torch.rand(20) * 10
# y基于x线性生成,并添加一些噪声
y = 2 * x + torch.randn(20) * 3# 初始化权重w和偏置b,requires_grad=True表示它们在后续计算中需要梯度
w = torch.zeros(1, requires_grad=True)
b = torch.zeros(1, requires_grad=True)# 定义学习率
lr = 0.01# 迭代200次进行梯度下降
for i in range(200):# 计算预测值y_pred = w * x + b# 计算损失,均方误差的一半loss = torch.mean(0.5 * (y_pred - y) ** 2) / len(x)# 反向传播计算梯度loss.backward()# 更新权重w和偏置b,注意使用.no_grad()确保更新操作不被跟踪w.data -= lr * w.gradb.data -= lr * b.grad# 清零梯度,为下一次迭代做准备w.grad.zero_()b.grad.zero_()# 每20次迭代显示一次当前的数据分布和拟合直线if (i + 1) % 20 == 0:plt.rcParams['figure.figsize'] = (2.0, 1.6)# 绘制散点图plt.scatter(x.numpy(), y.numpy(), s=3)# 绘制当前拟合的直线plt.plot(x.numpy(), y_pred.detach().numpy(), 'r-', lw=0.5)# 显示当前的损失plt.text(2, 15, 'Loss=%.4f' % loss.data.numpy(), fontdict={'size': 8, 'color': 'red'})plt.title('Iteration: {:d}'.format(i + 1))# 暂停0.5秒,以便观察变化plt.pause(0.5)
image-20250423220954285

相关文章:

2025-04-23 Python深度学习3——Tensor

文章目录 1 张量1.1 数学定义1.2 PyTorch中的张量 2 创建 Tensor2.1 直接创建**torch.tensor()****torch.from_numpy()** 2.2 依据数值创建**torch.zeros() / torch.zeros_like()****torch.ones() / torch.ones_like()****torch.full() / torch.full_like()****torch.arange() …...

ZYNQ笔记(十三):双核 AMP 通信实验

版本:Vivado2020.2(Vitis) ZYNQ 裸机双核 AMP 实验: CPU0 接收串口的数据,并写入 OCM 中,然后利用软件产生中断触发 CPU1;CPU1 接收到中断后,根据从 OCM 中读出的数据控制呼吸灯的频…...

黑马Java基础笔记-3

短路逻辑运算符与逻辑运算符 逻辑运算符 符号作用说明&逻辑与(且)并且,两边都为真,结果才是真|逻辑或或者,两边都为假,结果才是假^逻辑异或相同为 false,不同为 true!逻辑非取反 短路逻辑…...

4.23学习总结

虽然之前写过的相关dfs和bfs的题,但方法忘的差不多了,重写了一遍相关的算法题,今天完成了岛屿数量的算法题,我利用的是bfs的算法,遍历每个结点,如果是1就count,然后再bfs向四周遍历并标记已经走过 初步看了…...

ElasticSearch:高并发场景下如何保证读写一致性?

在Elasticsearch高并发场景下,可以通过以下多种方式来保证读写一致性: 等待主分片和副本分片都确认(类似半同步机制) 设置consistency参数:在写操作时,可以设置consistency参数来控制写操作的一致性级别。…...

Qt基础007(Tcp网络编程)

文章目录 QTcp服务器的关键流程QTtcp客户端的关键流程TCP协议Socket QTcp服务器的关键流程 工程建立,需要在.pro加入网络权限 创建一个基于 QTcpServer 的服务端涉及以下关键步骤: 创建并初始化 QTcpServer 实例: 实例化 QTcpServer 。 调…...

visio导出的图片过大导致latex格式转成pdf之后很不清楚

联想电脑解决方法 右键打开方式选择【照片】,然后选择调整图片大小,将像素的宽度和高度调低。...

leetcode刷题——判断对称二叉树(C语言版)

题目描述: 示例 1: 输入:root [6,7,7,8,9,9,8] 输出:true 解释:从图中可看出树是轴对称的。 示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false 解释:从图中可看出最…...

STM32与i.MX6ULL内存与存储机制全解析:从微控制器到应用处理器的设计差异

最近做FreeRTos,以及前面设计的RVOS,这种RTOS级别的系统内存上的分布与CortexA系列里面的分布有相当大的区别,给我搞糊涂了。 目录 STM32(Cortex-M系列)的内存与存储机制 Flash存储内容RAM存储内容启动与运行时流程示例…...

经验分享-上传ios的ipa文件

.ipa格式的二进制文件,是打包后生成的文件,无论我们是放上去testflight测试还是正式上传到app store,都需要先上传到苹果开发者中心的app store connect上的构建版本上。 在app store connect上,上传构建版本的功能,它…...

Linux423 删除用户

查找 上面已查过:无法使用sudo 新开个终端试试 之前开了一个终端,按照deepseek排查 计划再开一个进程 开一个终端 后强制删除时显示:此事将被报告...

AI与Web3.0:技术融合

AI与Web3.0:技术融合 分享一下给大家一个从0开始学习ai 的网站。点击跳转到网站。 https://www.captainbed.cn/ccc 前言 随着互联网技术的飞速发展,Web3.0作为下一代互联网形态,正以前所未有的速度改变着我们的生活方式和工作模式。Web3.0强…...

Python爬虫第18节-动态渲染页面抓取之Splash使用上篇

目录 引言 一、Splash 的简介与安装 1.1 简介 1.2 安装 二、Splash 的使用 三、Splash Lua 脚本开发 3.1 脚本入口与返回值 3.2 异步处理 四、Splash 对象属性 4.1 args 4.2 js_enabled 4.3 resource_timeout 4.4 images_enabled 4.5 scroll…...

Linux进程状态及转换关系

目录 1、就绪态(Ready) 2、运行态(Running) 3、僵尸态(Zombie) 4、可中断睡眠态(Interruptible Sleep) 5、不可中断睡眠态(Uninterruptible Sleep) 6、…...

Java基础:认识注解,模拟junit框架

认识注解 自定义注解 注解的原理 元注解 解析注解 应该场景-配合反射做juint框架 public static void main(String[] args) {AnnotationDemo4 a new AnnotationDemo4();Class clazz AnnotationDemo4.class;Method[] methods clazz.getDeclaredMethods();for (Method method …...

chrony服务器

时间有什么作用?约定干什么事情,会出问题,双方约定会达成 一旦有一方的时间不准确,约定都会达不成 不联网,计算机运行一个月,你的计算机就会和标准的时间差一两分钟 通常情况下,硬件时间的运…...

Springboot——Redis的使用

在当今的软件开发领域,缓存技术是提升应用性能的关键手段之一。Redis 作为一款高性能的键值对存储数据库,凭借其出色的读写速度和丰富的数据结构,在缓存场景中得到了广泛应用。Spring Boot 作为一款简化 Spring 应用开发的框架,与…...

【EasyPan】removeFile2RecycleBatch方法及递归操作解析

【EasyPan】项目常见问题解答(自用&持续更新中…)汇总版 文件批量转移到回收站方法解析 一、方法总述 removeFile2RecycleBatch方法实现将用户选中的文件/目录及其子内容批量移入回收站的业务逻辑,主要特点: 递归处理&…...

AIGC的伦理困境:机器生成内容是否该被监管?

AIGC的伦理困境:机器生成内容是否该被监管? 在当今数字时代,人工智能(AI)技术的发展日新月异,其中生成式人工智能(AIGC, AI-Generated Content)作为一项前沿技术,正以前…...

缓存一致性

什么是缓存一致性? 当数据库和缓存之间的额数据内容保持同步或最终一致,称为缓存一致性 为什么缓存不一致会发生? 因为缓存和数据库是两个独立系统,它们的更新过程不是原子操作,就可能发生以下情况: //…...

【Java学习方法】终止循环的关键字

终止循环的关键字 一、break 作用:跳出最近的循环(直接结束离break最近的那层循环) 使用场景:一般搭配if条件判断,如果满足某个条件,就结束循环,(场景:常见于暴力枚举中…...

bert学习

BERT Google在2018年提出的​​预训练语言模型​​,通过双向Transformer结构和大规模预训练。 核心特点 双向上下文 与传统模型(如LSTM或单向Transformer)不同,BERT通过同时考虑单词的​​左右上下文​​来捕捉更丰富的语义信息。…...

读书笔记:淘宝十年产品与技术演进史

作者:大淘宝技术 原文地址:读书笔记:淘宝十年产品与技术演进史 本文是对《淘宝十年产品事》与《淘宝技术这十年》两本书的阅读笔记总结。通过回顾淘宝过去十年在产品、技术、架构、中间件及开放平台等方面的发展历程,展现了其从初…...

ROS 快速入门教程02

5. Node 节点 以智能手机为例,当我们使用智能手机的某个功能时,大多时候在使用手机的某个APP。同样当我们使用ROS的某个功能时,使用的是ROS的某一个或者某一些节点。 虽然每次我们只使用ROS的某一个或者某一些节点,但我们无法下…...

卷积神经网络常用结构

空间注意力机制(Spatial Attention)详解 空间注意力机制(Spatial Attention)详解 空间注意力机制是计算机视觉中的重要组件,它使网络能够选择性地关注特征图中的重要空间区域,同时抑制不相关区域的影响。 空间注意力机制结构图 空间注意力机制详细解析…...

neo4j中节点内的名称显示不全解决办法(如何让label在节点上自动换行)

因为节点过多而且想让节点中所有文字都显示出来而放大节点尺寸 从neo4j中导出png,再转成PDF来查看时,要看清节点里面的文字就得放大5倍才行 在网上看了很多让里面文字换行的办法都不行 然后找到一个比较靠谱的办法是在要显示的标签内加换行符 但是我的节点上显示的是…...

容器化-Docker-进阶

一、自定义镜像:从基础部署到镜像定制​ (一)Linux 与 Docker 原生部署 Nginx 对比​ Linux 原生部署 Nginx # 安装依赖 sudo apt-get update && sudo apt-get install -y build-essential openssl libpcre3-dev zlib1g-dev # 下载Nginx源码 wget http://nginx.org…...

Sqlserver 自增长id 置零或者设置固定值

在 SQL Server 中,如果需要重置一个表的自增长(Identity)列的当前值,通常有几种方法可以实现。但是,值得注意的是,直接将自增长列的值设置为0并不是一个推荐的做法,因为这会破坏自增长列的连续性…...

状态模式(State Pattern)详解

文章目录 一、状态模式简介1.1 什么是状态模式?1.2 为什么需要状态模式?1.3 状态模式的核心思想二、状态模式的结构2.1 UML类图2.2 各个组件的详细说明2.3 交互过程三、状态模式的实现步骤(以Java为例)步骤1:创建状态接口步骤2:实现具体状态类步骤3:创建上下文类步骤4:…...

Shopee五道质检系统重构东南亚跨境格局,2025年电商游戏规则悄然改写

在2024年的东南亚跨境电商市场,一场以“质量”为核心的深度变革正在上演。作为头部平台的Shopee率先出招,以一套“五道质检流程”打破行业旧格局,不仅有效遏制高企的退货率,更引发从卖家结构到政策制度的连锁反应。 这场质量革命…...

Unity-无限滚动列表实现Timer时间管理实现

今天我们来做一个UI里经常做的东西:无限滚动列表。 首先我们得写清楚实现的基本思路: 所谓的无限滚动当然不是真的无限滚动,我们只要把离开列表的框再丢到列表的后面就行,核心理念和对象池是类似的。 我们来一点一点实现&#x…...

Python高级爬虫之JS逆向+安卓逆向1.6节: 函数基础

目录 引言: 1.6.1 理解函数 1.6.2 定义函数 1.6.3 调用函数 1.6.4 位置实参 1.6.5 关键字实参 1.6.6 爬虫不要进接单群 引言: 大神薯条老师的高级爬虫+安卓逆向教程: 这套爬虫教程会系统讲解爬虫的初级,中级,高级知识,涵盖的内容包括基础爬虫,高并发爬虫的设计与…...

集结号海螺捕鱼组件搭建教程与源码结构详解(第四篇)

本篇将聚焦“冰封领域”场景构建与性能优化策略。本节适合有Unity经验的技术团队,对大型特效场景优化、C与Unity协同通信及资源动态加载有深入需求的开发者。 一、冰封领域场景设计理念 冰封领域是高难度玩法场景,常用于高段位玩家房间,场景…...

02.Python代码Pandas - Series全系列分享(使用.特点.说明.取值.函数)

02.Python代码Pandas - Series全系列分享(使用.特点.说明.取值.函数) 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是pandas的使用语法。前后每一小节的内容是存在的有:学习and理解的关联性,希望…...

星火燎原:Spark技术如何重塑大数据处理格局

在数字化浪潮席卷全球的今天,数据已成为企业发展与社会进步的核心驱动力。面对海量且复杂的数据,传统的数据处理技术逐渐显得力不从心。而Apache Spark作为大数据领域的明星框架,凭借其卓越的性能与强大的功能,如同一束璀璨的星火…...

AI大模型和人脑的区别

为什么人脑没有幻觉,但是 AI 大语言模型有幻觉? 人脑和大型语言模型(LLM)在处理信息的方式上存在根本差异,这导致了幻觉现象主要出现在LLM中。LLM的幻觉是指模型生成了貌似合理但实际上错误或虚构的内容。 LLM的工作…...

第一章:基于Docker环境快速搭建LangChain框架的智能对话系统:从langchain环境搭建到多轮对话代码实现(大语言模型加载)

文章目录 前言一、langchain环境搭建1、docker容器搭建2、docker容器连接修改密码容器内容修改物理机修改 3、langchain安装 二、langchain构建简单智能对话示例1、基于deepseek的简单问答Demo2、langchain的invoke、stream与astream生成方法1、langchain的invoke、stream与ast…...

数据结构的学习(1)二分查找,利用二分查找找局部最小值,选择排序,冒泡排序,插入排序,位运算的基础知识

一、二分查找某个元素 (1)查找是否存在某个元素在数组中 思想: 1)先看中间位置的值 2)如果中间位置的值大于目标值说明目标值在整个数组中偏左的位置,改变右边界,即Right Mid - 1; 3&#xf…...

vue2+Vant 定制主题

参考文档:Vant主题定制-CSDV博客 vant提供了一套默认主题,若想完全替换主题是或者其他样式,则需要定制主题。 定制方法 1、main.js文件引入主题样式源文件 // 导入并安装 Vant 组件库 import Vant from vant // 切记:为了能够覆…...

【自然语言处理与大模型】大模型参数规模与部署配置调查2025第一季度

调查大模型参数规模与部署配置之间的关系。探讨如何在不同硬件和场景下优化大模型的部署。 一、 当前主流模型的参数规模对比 (1)当前主流模型有哪些 参考全球最大AI开源社区Hugging Face发布的榜单、上海AI实验室推出的开放评测体系OpenCompass和国内开…...

香港科技大学广州|先进材料学域博士招生宣讲会—南开大学专场

香港科技大学广州|先进材料学域博士招生宣讲会—南开大学专场 时间:2025年4月25日(星期五)10:00 地点:南开大学八里台校区中心实验室报告厅 宣讲嘉宾: 李昊翔 助理教授 TAN Chee Keong 助理教授 教授亲…...

异构迁移学习(无创脑机接口中的跨脑电帽迁移学习)

本文介绍BCI中的跨脑电帽的迁移学习最新算法。 (发表于2025 arxiv,应该属于投稿阶段,这个场景具有非常不错的研究意义和前景) 最新跨脑电帽异构算法github开源代码 SDDA算法原文 一、脑机接口绪论 脑机接口(BCI)指在人或动物大脑与外部设备之间创建的直接连接,通过脑…...

若依项目部署小结

参考视频:前后端分离式项目实战部署 | CodeSheep 环境搭建 虚拟机环境:jdk1.8 tomcat9 nginx A :虚拟机A运行前端项目 A B:虚拟机B运行war包 B C:虚拟机C运行jar包 C mysql和redis连的是C主机 前端项目部署 必备&…...

多智能体系统的中间件架构

多智能体系统(Multi-Agent Systems, MAS)是一种由多个智能体(Agents)组成的分布式系统,这些智能体能够自主地感知环境、做出决策并与其他智能体进行交互。 中间件(Middleware)在多智能体系统中…...

Eliciting Causal Abilities in Large Language Models for Reasoning Tasks

Eliciting Causal Abilities in Large Language Models for Reasoning Tasks | Proceedings of the AAAI Conference on Artificial Intelligencehttps://ojs.aaai.org/index.php/AAAI/article/view/33669 1. 概述 大型语言模型(Large Language Models, LLMs)面临的一...

DeepSeek+Mermaid:轻松实现可视化图表自动化生成(附实战演练)

目录 一、引言:AI 与图表的梦幻联动二、DeepSeek:大语言模型新星崛起2.1 DeepSeek 全面剖析2.2 多场景应用示例2.2.1 文本生成2.2.2 代码编写 三、Mermaid:代码式图表绘制专家3.1 Mermaid 基础探秘3.2 语法与图表类型详解3.2.1 流程图&#x…...

LeetCode第164题_最大间距

LeetCode 第164题:最大间距 题目描述 给定一个无序的数组 nums,返回 数组在排序之后,相邻元素之间最大的差值 。如果数组元素个数小于 2,则返回 0 。 您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法。 难度…...

什么是DDD?为什么它正在取代传统架构?

什么是DDD?为什么它正在取代传统架构? 1. 传统开发模式的痛点 在经典的MVC架构中,开发流程往往从数据库表结构设计开始,业务逻辑散落在Service层,随着需求迭代容易形成「大泥球」代码: 实体类变成纯粹的…...

Vue3父子组件数据双向同步实现方法

在 Vue 3 中,实现父子组件间双向同步响应式对象的步骤如下: 实现思路 父组件通过 v-model 传递响应式对象。 子组件接收并深拷贝为本地副本。 子组件监听父组件的数据变化,更新本地副本(不触发同步)。 子组件监听本…...

一些基本的 Vue 规范

一、项目结构规范 推荐的目录结构 src/ ├── assets/ # 静态资源(如图片、字体) ├── components/ # 全局组件 ├── views/ # 页面组件(用于路由) ├── router/ # 路由配置 ├── store/…...