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

Pytorch张量和损失函数

文章目录

  • 张量
    • 张量类型
    • 张量例子
    • 使用概率分布创建张量
      • 正态分布创建张量 (torch.normal)
      • 正态分布创建张量示例
      • 标准正态分布创建张量
      • 标准正态分布创建张量示例
      • 均匀分布创建张量
      • 均匀分布创建张量示例
  • 激活函数
    • 常见激活函数
  • 损失函数(Pytorch API)
    • L1范数损失函数
    • 均方误差损失函数
    • 交叉熵损失函数
    • 余弦相似度损失
      • 计算两个向量的余弦相似度
      • 计算两个矩阵的余弦相似度(逐行计算)
      • 计算两个 batch 数据的余弦相似度

张量

张量类型

  • 张量是一个多维数组,它的每个方向都被称为模(Mode)。张量的阶数就是它的维数,一阶张量就是向量,二阶张量就是矩阵,三界以上的张量统称为高阶张量。

  • Tensor是Pytorch的基本数据结构,在使用时表示为torch.Tensor形式。主要属性包括以下内容(前四个属性与数据相关,后四个属性与梯度求导相关):
    • data:被包装的张量。
    • dtype:张量的数据类型。
    • shape:张量的形状/维度。
    • device:张量所在的设备,加速计算的关键(CPU、GPU)
    • grad:data的梯度
    • grad_fn:创建张量的Function(自动求导的关键)
    • requires_grad:指示是否需要计算梯度
    • is_leaf:指示是否为叶子节点

  • torch.dtype是表示torch.Tensor数据类型的对象,PyTorch支持以下9种数据类型:
数据类型dtype表示CPU张量类型GPU张量类型
32位浮点数torch.float32torch.floattorch.FloatTensortorch.cuda.FloatTensor
64位浮点数torch.float64torch.doubletorch.DoubleTensortorch.cuda.DoubleTensor
16位浮点数torch.float16torch.halftorch.HalfTensortorch.cuda.HalfTensor
8位无符号整数torch.uint8torch.ByteTensortorch.cuda.ByteTensor
8位有符号整数torch.int8torch.CharTensortorch.cuda.CharTensor
16位有符号整数torch.int16torch.shorttorch.ShortTensortorch.cuda.ShortTensor
32位有符号整数torch.int32torch.inttorch.IntTensortorch.cuda.IntTensor
64位有符号整数torch.int64torch.longtorch.LongTensortorch.cuda.LongTensor
布尔型torch.booltorch.BoolTensortorch.cuda.BoolTensor

  1. 浮点类型默认使用torch.float32
  2. 整数类型默认使用torch.int64
  3. 布尔类型用于存储True/False值
  4. GPU张量类型需在CUDA环境下使用

张量例子

import torch
import numpy as np
# 1. 创建Tensor
x = torch.tensor([[1, 2], [3, 4.]])  # 自动推断为float32类型
print("Tensor x:\n", x)
y=torch.tensor(np.ones((3,3)))
print("Tensor y:\n", y)
Tensor x:tensor([[1., 2.],[3., 4.]])
Tensor y:tensor([[1., 1., 1.],[1., 1., 1.],[1., 1., 1.]], dtype=torch.float64)
# 2. 查看Tensor属性
print("\nTensor属性:")
print("data:", x.data)        # 被包装的张量
print("dtype:", x.dtype)      # 数据类型 torch.float32
print("shape:", x.shape)      # 形状/维度 torch.Size([2, 2])
print("device:", x.device)    # 所在设备 cpu
print("requires_grad:", x.requires_grad)  # 是否需要计算梯度 False
print("is_leaf:", x.is_leaf)  # 是否为叶子节点 True
Tensor属性:
data: tensor([[1., 2.],[3., 4.]])
dtype: torch.float32
shape: torch.Size([2, 2])
device: cpu
requires_grad: False
is_leaf: True
# 3. 设置requires_grad=True以跟踪计算
x = torch.tensor([[1., 2], [3, 4]], device='cpu', requires_grad=True)
print("\n设置requires_grad=True后的x:", x)
设置requires_grad=True后的x: tensor([[1., 2.],[3., 4.]], requires_grad=True)
# 4. 进行一些计算操作
y = x + 2
z = y * y * 3
out = z.mean()print("\n计算过程:")
print("y = x + 2:\n", y)
print("z = y * y * 3:\n", z)
print("out = z.mean():", out)
计算过程:
y = x + 2:tensor([[3., 4.],[5., 6.]], grad_fn=<AddBackward0>)
z = y * y * 3:tensor([[ 27.,  48.],[ 75., 108.]], grad_fn=<MulBackward0>)
out = z.mean(): tensor(64.5000, grad_fn=<MeanBackward0>)
# 5. 反向传播计算梯度
out.backward()
print("\n梯度计算:")
print("x.grad:\n", x.grad)  # d(out)/dx
梯度计算:
x.grad:tensor([[4.5000, 6.0000],[7.5000, 9.0000]])
# 6. 查看grad_fn
print("\n梯度函数:")
print("y.grad_fn:", y.grad_fn)  # <AddBackward0>
print("z.grad_fn:", z.grad_fn)  # <MulBackward0>
print("out.grad_fn:", out.grad_fn)  # <MeanBackward0>
梯度函数:
y.grad_fn: <AddBackward0 object at 0x0000025AD0B28670>
z.grad_fn: <MulBackward0 object at 0x0000025AD0B919A0>
out.grad_fn: <MeanBackward0 object at 0x0000025AD0B28670>
# 7. 设备管理
if torch.cuda.is_available():device = torch.device("cuda")x_cuda = x.to(device)print("\nGPU Tensor:")print("x_cuda device:", x_cuda.device)
else:print("\nCUDA不可用")
GPU Tensor:
x_cuda device: cuda:0
# 8. 数据类型转换
x_int = x.int()
print("\n数据类型转换:")
print("x_int dtype:", x_int.dtype)  # torch.int32
数据类型转换:
x_int dtype: torch.int32

使用概率分布创建张量

正态分布创建张量 (torch.normal)

  • 通过torch.normal()函数从给定参数的离散正态分布中抽取随机数创建张量。
torch.normal(mean, std, size=None, out=None)
  • mean (Tensor/float): 正态分布的均值(支持标量或张量)
  • std (Tensor/float): 正态分布的标准差(支持标量或张量)
  • size (tuple): 输出张量的形状(仅当mean/std为标量时必需)
  • out (Tensor): 可选输出张量
  1. 均值和标准差均为标量
  2. 均值为张量,标准差为标量
  3. 均值为标量,标准差为张量
  4. 均值和标准差均为张量(需同形状)

正态分布创建张量示例

import torch# 模式1:标量均值和标准差
normal_tensor1 = torch.normal(mean=0.0, std=1.0, size=(2,2))
print("标量参数:\n", normal_tensor1)# 模式2:张量均值 + 标量标准差
mean_tensor = torch.arange(1, 5, dtype=torch.float)
normal_tensor2 = torch.normal(mean=mean_tensor, std=1.0)
print("\n张量均值:\n", normal_tensor2)# 模式4:张量均值 + 张量标准差
std_tensor = torch.linspace(0.1, 0.4, steps=4)
normal_tensor3 = torch.normal(mean=mean_tensor, std=std_tensor)
print("\n双张量参数:\n", normal_tensor3)
标量参数:tensor([[-1.5585,  0.2315],[-1.5771, -0.0783]])张量均值:tensor([0.9710, 1.2523, 3.6285, 4.2808])双张量参数:tensor([1.0566, 2.1025, 3.1653, 3.3020])

标准正态分布创建张量

  • torch.randn
torch.randn(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)
  • size (tuple): 定义张量形状的整数序列

  • dtype (torch.dtype): 指定数据类型(如torch.float32)

  • device (torch.device): 指定设备(‘cpu’或’cuda’)

  • requires_grad (bool): 是否启用梯度计算

  • torch.randn_like

torch.randn_like(input, dtype=None, layout=None, device=None, requires_grad=False)
  • input (Tensor): 参考张量(复制其形状)

标准正态分布创建张量示例

# 基础用法
randn_tensor = torch.randn(3, 4, dtype=torch.float64)
print("标准正态张量:\n", randn_tensor)# 类似张量创建
base_tensor = torch.empty(2, 3)
randn_like_tensor = torch.randn_like(base_tensor)
print("\n类似形状创建:\n", randn_like_tensor)# GPU张量创建(需CUDA环境)
if torch.cuda.is_available():gpu_tensor = torch.randn(3, 3, device='cuda')print("\nGPU张量:", gpu_tensor.device)
标准正态张量:tensor([[-0.3266, -0.9314,  0.1892, -0.3418],[ 0.4397, -1.2986, -0.7380, -0.6443],[ 0.7485,  0.4076, -0.6021, -0.9000]], dtype=torch.float64)类似形状创建:tensor([[-0.8994,  0.5934, -1.3246],[-0.1019,  0.8172, -1.3164]])GPU张量: cuda:0

均匀分布创建张量

  • torch.rand:生成[0,1)区间内的均匀分布
torch.rand(*size, out=None, dtype=None, layout=torch.strided, device=None,requires_grad=False) → Tensor
  • torch.rand_like
torch.rand_like(input, dtype=None, layout=None, device=None, requires_grad=False)

均匀分布创建张量示例

# 基础均匀分布
uniform_tensor = torch.rand(2, 2)
print("均匀分布张量:\n", uniform_tensor)# 指定范围的均匀分布(需线性变换)
a, b = 5, 10
scaled_tensor = a + (b - a) * torch.rand(3, 3)
print("\n[5,10)区间张量:\n", scaled_tensor)# 整数均匀分布(需结合random.randint)
int_tensor = torch.randint(low=0, high=10, size=(4,))
print("\n整数均匀分布:\n", int_tensor)
均匀分布张量:tensor([[0.4809, 0.6847],[0.9278, 0.9965]])[5,10)区间张量:tensor([[8.6137, 5.9940, 7.2302],[5.1680, 7.0532, 5.9403],[8.3315, 6.1549, 8.5181]])整数均匀分布:tensor([8, 5, 9, 6])

激活函数

  • 激活函数是指在神经网络的神经元上运行的函数,其负责将神经元的输入映射到输出端。

常见激活函数

  • 参看深度学习系统学习系列【5】之深度学习基础

损失函数(Pytorch API)

  • 在监督学习中,损失函数表示样本真实值与模型预测值之间的偏差,其值通常用于衡量模型的性能。现有的监督学习算法不仅使用了损失函数,而且求解不同应用场景的算法会使用不同的损失函数。即使在相同场景下,不同的损失函数度量同一样本的性能时也存在差异。
  • 损失函数的选用是否合理直接决定着监督学习算法预测性能的优劣。
  • 在PyTorch中,损失函数通过torch.nn包实现调用。

L1范数损失函数

  • L1范数损失即L1LoSS,原理就是取预测值和真实值的绝对误差的平均数,计算模型预测输出output和目标target之差的绝对值,可选择返回同维度的张量或者标量。
    l o s s ( x , y ) = 1 N ∑ i = 1 N ∣ x − y ∣ loss(x,y)=\frac{1}{N}\sum_{i=1}^{N}|x-y| loss(x,y)=N1i=1Nxy
torch.nn.L1Loss (size_average=None, reduce=None, reduction='mean')
  • size_average:为True时,返回的loss为平均值;为False时,返回的loss为各样本的loss值之和。
  • reduce:返回值是否为标量,默认为True
import torch
import torch.nn as nn
loss=nn.L1Loss(eduction='mean')
input=torch.tensor([1.0,2.0,3.0,4.0])
target=torch.tensor([4.0,5.0,6.0,7.0])
output=loss(input,target)
print(output) # tensor(3.)
  • 两个输入类型必须一致,reduction是损失函数一个参数,有三个值:'none’返回的是一个向量(batch_size),'sum’返回的是和,'mean’返回的是均值。

均方误差损失函数

  • 均方误差损失即MSELoss,计算公式是预测值和真实值之间的平方和的平均数,计算模型预测输出output和目标target之差的平方,可选返回同维度的张量或者标量。
    l o s s ( x , y ) = 1 N ∑ i = 1 N ∣ x − y ∣ 2 loss(x,y)=\frac{1}{N}\sum_{i=1}^{N}|x-y|^2 loss(x,y)=N1i=1Nxy2
torch.nn.MSELoss(reduce=True,size average=True,reduction='mean')
  • reduce:返回值是否为标量,默认为True。
  • size_average:当reduce=True时有效。为True时,返回的loss为平均值;为False时,返回的loss为各样本的loss值之和。
import torch
import torch.nn as nn
loss=nn.MSELoss(reduction='mean')
input=torch.tensor([1.0,2.0,3.0,4.0])
target=torch.tensor([4.0,5.0,6.0,7.0])
output=loss(input,target)
print(output) # tensor(9.)

交叉熵损失函数

  • 交叉熵损失(Cross Entropy Loss)函数结合了nn.LogSoftmax()和nn.NLLLoss()两个函数,在做分类训练的时候非常有用。
  • 交叉熵的概念,它用来判定实际输出与期望输出的接近程度。也就是说,用它来衡量网络的输出与标签的差异,利用这种差异通过反向传播来更新网络参数。交叉熵主要刻画的是实际输出概率与期望输出概率的距离,也就是交叉熵的值越小,两个概率分布就越接近,假设概率分布p为期望输出,概率分布q为实际输出,计算公式如下:
    H ( p , q ) = − ∑ x p ( x ) × l o g q ( x ) H(p, q)=-\sum_x p(x) \times logq(x) H(p,q)=xp(x)×logq(x)
torch.nn.CrossEntropyLoss(weight=None, size_average=None,ignore_index=-100,reduce=None,reduction='mean')
  • weight(tensor):n个元素的一维张量,分别代表n类权重,如果训练样本很不均衡的话,则非常有用,默认值为None。
  • size_average:当reduce=True时有效。为True时,返回的loss为平均值;为False时,返回的loss为各样本的loss值之和。
  • ignore_index:忽略某一类别,不计算其loss,并且在采用size_average时,不会计算那一类的loss值。
  • reduce:返回值是否为标量,默认为True。
import torch.nn as nn
entroy=nn.CrossEntropyLoss(reduction='mean')
input=torch.tensor([[-0.011,-0.022,-0.033,-0.044]])
target=torch.tensor([0])
output=entroy(input,target)
print(output)

余弦相似度损失

  • 余弦相似度损失(Cosine SimilarityLoss)通常用于度量两个向量的相似性,可以通过最大化这个相似度来进行优化。
    l o s s ( x , y ) = { l − c o s ( x 1 , x 2 ) , y = 1 m a x ( 0 , c o s ( x 1 , x 2 ) − m a r g i n ) , y = − 1 \begin{array} { r } { \mathrm { l o s s } ( x , y ) = \left\{ \begin{array} { l l } { \mathrm { l } - \mathrm { c o s } ( x _ { 1 } , x _ { 2 } ) , \quad } & { y = 1 } \\ { \mathrm { m a x } ( 0 , \mathrm { c o s } ( x _ { 1 } , x _ { 2 } ) - \mathrm { m a r g i n } ) , \quad } & { y = - 1 } \end{array} \right. } \end{array} loss(x,y)={lcos(x1,x2),max(0,cos(x1,x2)margin),y=1y=1
  • torch.nn.functional.cosine_similarity是 PyTorch 提供的用于计算两个张量之间 余弦相似度(Cosine Similarity) 的函数。余弦相似度衡量的是两个向量在方向上的相似程度,取值范围为 [-1, 1],值越大表示方向越相似。
torch.nn.functional.cosine_similarity(x1,  x2, dim=1,  eps=1e-8)
参数类型说明
x1Tensor第一个输入张量
x2Tensor第二个输入张量
dimint计算相似度的维度,默认 dim=1表示对每个样本计算特征向量的相似度。
epsfloat防止除零的小数值,默认 1e-8 防止分母为零(当某个向量的 L2 范数为 0 时)

常见用途

  1. 文本/图像相似度计算(如对比学习、检索任务)。
  2. 损失函数设计(如 1 - cosine_similarity 用于最小化方向差异)。
  3. 特征匹配(如计算两个嵌入向量的相似度)。

计算两个向量的余弦相似度

  1. 输入要求x1x2 必须具有 相同的形状shape)。如果输入是 1D 张量(向量),需要先 unsqueeze(0) 变成 2D(矩阵)才能计算。例如:
import torch
import torch.nn.functional as Fa = torch.tensor([1.0, 2.0, 3.0])
b = torch.tensor([4.0, 5.0, 6.0])# 需要 unsqueeze(0) 变成 2D
similarity = F.cosine_similarity(a.unsqueeze(0), b.unsqueeze(0), dim=1)
print(similarity)  # 输出:tensor([0.9746])

计算两个矩阵的余弦相似度(逐行计算)

import torch
import torch.nn.functional as F
x1 = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
x2 = torch.tensor([[5.0, 6.0], [7.0, 8.0]])similarity = F.cosine_similarity(x1, x2, dim=1)
print(similarity)  # 输出:tensor([0.9689, 0.9974])

计算两个 batch 数据的余弦相似度

import torch
import torch.nn.functional as F
batch_a = torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
batch_b = torch.tensor([[4.0, 5.0, 6.0], [7.0, 8.0, 9.0]])similarity = F.cosine_similarity(batch_a, batch_b, dim=1)
print(similarity)  # 输出:tensor([0.9746, 0.9989])

相关文章:

Pytorch张量和损失函数

文章目录 张量张量类型张量例子使用概率分布创建张量正态分布创建张量 (torch.normal)正态分布创建张量示例标准正态分布创建张量标准正态分布创建张量示例均匀分布创建张量均匀分布创建张量示例 激活函数常见激活函数 损失函数(Pytorch API)L1范数损失函数均方误差损失函数交叉…...

【RabbitMQ】工作队列和发布/订阅模式的具体实现

文章目录 建立连接工作队列模式实现创建队列和交换机生产者代码消费者代码运行程序启动消费者启动生产者 发布/订阅模式实现创建队列和交换机生产者代码创建交换机声明两个队列绑定队列和交换机发送消息完整代码 消费者代码完整代码 运行程序启动生产者启动消费者 建立连接 我…...

loki grafana 页面查看 loki 日志偶发 too many outstanding requests

问题描述 grafana 页面查看 loki 日志偶然出现 too many outstanding requests loki pod 日志报错 levelerror ts2025-05-13T06:15:52.509738812Z callerscheduler_processor.go:158 org_idfake traceID1570d49e6d15b25c msg"error notifying scheduler about finished …...

Python之with语句

文章目录 Python中的with语句详解一、基本语法二、工作原理三、文件操作中的with语句1. 基本用法2. 同时打开多个文件 四、with语句的优势五、自定义上下文管理器1. 基于类的实现2. 使用contextlib模块 六、常见应用场景七、注意事项 Python中的with语句详解 with语句是Python…...

tomcat搭建内网论坛

准备工作&#xff1a; 准备jdk-8u291-linux-x64.tar.gz压缩包与apache-tomcat-9.0.16.tar.gz压缩包。 jdk安装&#xff1a; tar xf jdk-8u291-linux-x64.tar.gz -C /usr/local/ cd /usr/local/ ln -s jdk1.8.0_291/ jdk vim /etc/profile.d/jdk.sh cat /etc/profile.d/jdk.s…...

基于开源AI大模型AI智能名片S2B2C商城小程序的零售结算技术创新研究——以京东AI与香港冯氏零售集团智能结算台为例

摘要&#xff1a;本文以京东AI与香港冯氏零售集团共同打造的人工智能结算台为切入点&#xff0c;结合开源AI大模型、AI智能名片及S2B2C商城小程序的技术特性&#xff0c;深入探讨其在零售结算领域的创新应用。研究发现&#xff0c;开源AI大模型为智能结算提供了强大的图像识别与…...

supabase 怎么新建项目?

在 Supabase 中新建项目主要通过官方网站的仪表盘 (Dashboard) 来完成。以下是详细步骤&#xff1a; 通过 Supabase 仪表盘新建项目&#xff1a; 注册/登录 Supabase 账户&#xff1a; 访问 Supabase 官网&#xff1a;https://supabase.com/如果你还没有账户&#xff0c;点击 …...

框架篇八股(自用)

框架篇 Spring框架中的bean不是线程安全的 Scope&#xff08;&#xff09; singleton单例 prototype多例 一个类中有可修改的成员变量需要考虑线程安全 bean没有可变状态&#xff08;service类&#xff0c;DAO类&#xff09; 某种程度单例bean是线程安全的 AOP面向切面编程…...

Flask Docker Demo 项目指南

首先&#xff0c;创建一个新的项目目录并创建必要的文件&#xff1a; mkdir flask-docker-demo cd flask-docker-demo创建一个简单的Flask应用 (app.py)&#xff1a; from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return Hello, Docker World…...

蓝卓AI智能体平台

在数字化浪潮席卷全球的今天&#xff0c;制造业企业正面临前所未有的挑战&#xff1a;如何将海量数据转化为精准决策&#xff1f;如何让传统生产流程具备“自进化”的智能&#xff1f;如何打破数字化与智能化之间的鸿沟&#xff1f;蓝卓数字科技凭借对工业场景的深刻理解&#…...

typedef unsigned short uint16_t; typedef unsigned int uint32_t;

你提到的这两行是 C/C 中的类型别名定义&#xff1a; typedef unsigned short uint16_t; typedef unsigned int uint32_t;它们的目的是让代码更具可读性和可移植性&#xff0c;尤其在处理精确位数的整数时非常有用。 ✅ 含义解释 typedef unsigned short uint16_t;…...

黑马k8s(五)

1.Namespace 2.Pod run nginx&#xff1a;nginx是pod控制器的名称&#xff0c;不是pod的名称 查看pod更高的参数&#xff1a; 启动一个不存在的镜像&#xff1a;pod 查看 dev下面的pod&#xff0c;第二个pod处于容器创建的状态 查看pod的详情描述&#xff1a; 通过pod的ip&…...

进程间通信分类

前提&#xff1a; 进程具有独立性&#xff0c;要通信就是要让它们&#xff1a;看到同一份资源&#xff08;某种形式的内存空间&#xff0c;操作系统提供&#xff09; 本地通信&#xff1a;同一台主机&#xff0c;OS&#xff0c;用系统调用通信。标准&#xff1a;systemV。 S…...

uniapp-商城-56-后台 新增商品(弹窗属性继续分析)

1、概述 前面我们讲了布局和相应商品属性的页面布局。属性是一个弹窗&#xff0c;它是一个cell的组件的实现属性。点击该cell就会调用uni-popup 进行弹窗。基本的页面布局如下&#xff1a; 属性显示其实是个一嵌套的数据显示。 2 页面显示商品属性 点击添加属性 2.1 代码如…...

奇怪的公式

奇怪的公式 背景导入 在剑桥大学&#xff0c;瞥了一眼下面这个公式&#xff0c;我眩晕了&#xff0c;庆幸自己没学数学专业。 1 2 3 4 ⋯ − 1 12 1234\dots -\frac{1}{12} 1234⋯−121​ 一天&#xff0c;剑桥大学教授哥德弗雷哈代收到一封来自印度的信。写信人叫拉马…...

web 自动化之 PO 设计模式详解

文章目录 一、什么是 POM二、如何基于 POM 进行自动化框架架构&#xff1f;1、base 层封装2、pageobjects 层封装3、TestCases 层封装 三、元素和方法分离&数据分离1、哪些部分可以进行分离2、示例代码 四、总结 一、什么是 POM POM page object model 页面对象模型 WEB 自…...

golang 定时器

写法一&#xff1a; package mainimport ("fmt""sync""time" )type DemoTicker struct {ch <-chan time.Timestop chan struct{}sg *sync.WaitGroup }func main() {count, stopCount : 0, 5demo : DemoTicker{ch: time.Tick(time.Seco…...

ETL 数据集成平台与数据仓库的关系及 ETL 工具推荐

数字化时代企业每天都会产生海量的数据&#xff0c;这些数据分散在不同的系统、数据库和应用中。为了能够有效地利用这些数据&#xff0c;进行数据分析、商业智能决策等&#xff0c;ETL数据集成平台和数据仓库成为了企业数据管理架构中的关键组成部分。本文将深入探讨ETL数据集…...

java架构设计

1.可维护性 封装性&#xff0c;例如将缓存redis封装到一个service&#xff0c;别的地方用到&#xff0c;只需要传参调用就行。如果有一天换国产缓存&#xff0c;只需要修改service&#xff0c;而不需要修改多出引用地方 * 可维护性&#xff1a;后期功能迭代&#xff0c;不可避…...

UDP--DDR--SFP,FPGA实现之指令监测模块实现

指令监测模块实现介绍 如下图所示&#xff0c;为指令监测模块的运行框图 将指令设置为8bytes数据&#xff0c;故需要一个64位寄存器进行缓存&#xff0c;在进行数据缓存时&#xff0c;数据不可以输出至下一级模块&#xff0c;故对数据和有效指示信号也应该进行相应延迟&#…...

Houdini安装SideFX Labs工具架

开源免费的 https://github.com/sideeffects/SideFXLabs/releases 下载后解压 放到文档里 新建一个packages文件夹 把SideFXLabs.json 复制到packages文件夹 删除一些没用的平台 修改相关路径即可 然后就能在houdini里搜到 autouv 节点 不然没装是没有这个节点的 参考教程 …...

uniapp+vue3+uview来开发我们的项目

前言&#xff1a; 就像我们vue的web的框架element、iview等一样&#xff0c;我们的uni-app开发也有适合的他的框架&#xff0c;除了他本身的扩展组件以外&#xff0c;第三方好用的就是就是uview了。 实现效果&#xff1a; 官网信息&#xff1a; vue2版本&#xff1a;uview-ui …...

MySQL 5.7在CentOS 7.9系统下的安装(上)——以rpm包的形式下载mysql

这里我们主要以CentOS 7.9为例进行介绍&#xff0c;会顺带讲讲Ubuntu的操作方式。 目录 一、检查自己的机器上是否安装有MySQL&#xff1a; &#xff08;1&#xff09;第一步&#xff1a;检查系统中是否有正在运行的MySQL服务&#xff1a; &#xff08;2&#xff09; 检查当…...

【图像处理基石】什么是油画感?

在图像处理中&#xff0c;“油画感”通常指图像呈现出类似油画的块状纹理、笔触痕迹或色彩过渡不自然的现象&#xff0c;表现为细节模糊、边缘不锐利、颜色断层或人工纹理明显。这种问题常见于照片处理、视频帧截图或压缩后的图像&#xff0c;本质是画质受损的一种表现。以下是…...

深度学习之优化器【从梯度下降到自适应学习率算法】(pytorch版)

文章目录 优化器&#xff08;Optimizer&#xff09;二 基础优化器1. 梯度下降&#xff08;Gradient Descent, GD&#xff09;2. 随机梯度下降&#xff08;Stochastic Gradient Descent, SGD&#xff09; 三 动量优化算法标准动量优化&#xff08;Momentum&#xff09;自适应学习…...

React+Webpack 脚手架、前端组件库搭建

链接: 自己写的开发文档&#xff0c;希望大家多多批评...

基于 Python 和 OpenAI 接口规范的本地多轮对话

在自然语言处理的应用中&#xff0c;多轮对话系统是一种极具实用性的功能&#xff0c;无论是聊天机器人、客服系统还是智能助手&#xff0c;都离不开对上下文的持续理解和响应。随着 Ollama 等轻量级模型服务的流行&#xff0c;我们也可以在本地轻松部署语言模型&#xff0c;并…...

binlog日志以及MySQL的数据同步

binlog binlog是什么 记录所有数据库表结构&#xff0c;表数据的修改&#xff0c;但是不会记录Select和Show这类操作 binlog有几种记录模式 三种记录模式 statement: 基于SQL语句的复制 row: 基于行的复制&#xff0c;记录每行数据的变更&#xff08;保证了数据的一致性&a…...

串口模块详细讲解

目录 1.串口介绍 2。STC-ISP串口功能介绍 3.接口及引脚定义 4.串口知识点 4.1 硬件电路 4.2 电平标准 4.3 相关术语 4.4 常见通信接口比较 4.5 51单片机的UART 4.6 串口参数及时序图 4.7 串口模式图 4.8 串口和中断系统 4.9 串口相关寄存器 5.串口向电脑发送信息…...

Flannel UDP 模式的优缺点

UDP 模式的特点、优缺点 优点 高兼容性&#xff1a;通过用户态 UDP 封装&#xff0c;无需内核支持 VXLAN 或其他高级网络功能&#xff0c;适用于旧版 Linux 内核或非标准环境。部署灵活&#xff1a;无需特殊内核模块或硬件支持&#xff0c;易于在异构环境中部署。简单实现&am…...

前端——布局方式

普通流&#xff08;标准流&#xff09; 所谓的标准流: 就是标签按照规定好默认方式排列. 1. 块级元素会独占一行&#xff0c;从上向下顺序排列。 常用元素&#xff1a;div、hr、p、h1~h6、ul、ol、dl、form、table 2. 行内元素会按照顺序&#xff0c;从左到右顺序排列&am…...

山东大学软件学院计算机图形学2025期末考题回忆版

任课教师&#xff1a;周元峰老师 考试时间&#xff1a;2025年5月13日 这次考试比之前的往年题多了写和读OpenGL代码的题目&#xff0c;其它和能找到的往年题&#xff08;19、21、24&#xff09;的差别不大。写完回忆题又发现自已错了好几个原题。。。。。。。。。。。。。。。…...

数控滑台:革新传统加工方式的利器

数控技术作为当今制造业中的重要发展方向&#xff0c;已深入到了各个领域&#xff0c;其中数控滑台作为数控加工领域的一个重要组成部分&#xff0c;对于提高加工效率、精度和质量具有重要意义。本文将重点探讨数控滑台的原理、优势以及在工业制造领域的应用。 一、数控滑台的…...

【WIN】笔记本电脑忘记密码解决办法/笔记本电脑重装系统笔记/bitlocker忘记密码的解决办法

通过安全模式下的CMD命令找回 具体的步骤就是&#xff1a; 首先通过笔记本的对应的一个进入安全模式的一个方式 进入安全模式之后&#xff0c;一直点着这个诊断&#xff0c;然后高级选项进去就可以看到了。 但是这种方法应该是属于安全漏洞&#xff0c;所以只适合老版本。如果是…...

手机相册的 “智能分类” 功能

我们以手机相册的 “智能分类” 功能&#xff08;识别图片中的物体类型&#xff09;为例&#xff0c;演示如何使用 TensorFlow Lite 框架将端侧模型部署到 Android 设备上。该场景通用且覆盖端侧部署的核心步骤&#xff1a;模型准备→环境配置→代码集成→硬件加速→业务调用。…...

配置Hadoop集群-上传文件

&#xff08;一&#xff09;上传小文件 上传文件的时候&#xff0c;我们传一个大一点的&#xff08;>128M&#xff09;&#xff0c;再传一个小一点的。对于大一点的文件&#xff0c;我们要去看看它是否会按128M为单位去拆分这个大文件&#xff0c;而拆分成大文件之后&#x…...

SpringBoot整合MQTT实战:基于EMQX实现双向设备通信(附源码)

简言&#xff1a; 在万物互联的时代&#xff0c;MQTT协议凭借其轻量级、高效率的特性&#xff0c;已成为物联网通信的事实标准。本教程将带领您在Ubuntu系统上搭建EMQX 5.9.0消息服务器&#xff0c;并使用Spring Boot快速实现两个客户端的高效通信。通过本指南&#xff0c;您将…...

windows c++ (9) 程序内注册服务并修改登录账户

实现方式全以批处理文件实现&#xff0c;直接在进程内调用即可 1、注册服务 注册服务manage.bat内容如下 echo off setlocalset ServiceExeYouProcess.exe set ServiceNameYouProcess set BASE%~dp0:: 检查命令行参数 if "%~1""" (echo Usage: manage_p…...

按键精灵ios脚本新增元素功能助力辅助工具开发(三)

元素节点功能&#xff08;iOSElement&#xff09;​ 在按键精灵 iOS 新版 APP v2.2.0 中&#xff0c;新增了元素节点功能 iOSElement&#xff0c;该功能包含共 15 个函数。这一功能的出现&#xff0c;为开发者在处理 iOS 应用界面元素时提供了更为精准和高效的方式。通过这些函…...

OpenHarmony平台驱动开发(十五),SDIO

OpenHarmony平台驱动开发&#xff08;十五&#xff09; SDIO 概述 功能简介 SDIO&#xff08;Secure Digital Input and Output&#xff09;由SD卡发展而来&#xff0c;与SD卡统称为MMC&#xff08;MultiMediaCard&#xff09;&#xff0c;二者使用相同的通信协议。SDIO接口…...

ICMP协议详解及不同VLAN/VXLAN主机通信中的ICMP示例

一、ICMP协议概述 ICMP&#xff08;Internet Control Message Protocol&#xff0c;互联网控制消息协议&#xff09;是TCP/IP协议栈中的一项核心协议&#xff0c;用于在IP网络中传输控制消息和错误报告。ICMP定义在RFC 792中&#xff0c;主要用于诊断网络问题和传递控制信息。…...

SQL server数据库实现远程跨服务器定时同步传输数据

项目背景 数据需要定期迁移&#xff0c;数据存在于客户政务外网下&#xff0c;从旧数据库迁移到新数据库中&#xff0c;且要求能够定时增量同步。 注意&#xff1a; 源数据库所在服务器为windows服务器&#xff0c;目标数据库所在服务器为linux服务器。 源数据库所在windows服…...

贝叶斯优化Transformer融合支持向量机多变量时间序列预测,Matlab实现

贝叶斯优化Transformer融合支持向量机多变量时间序列预测&#xff0c;Matlab实现 目录 贝叶斯优化Transformer融合支持向量机多变量时间序列预测&#xff0c;Matlab实现效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.BO-TransformerSVM多变量时间序列预测&#xff0c…...

服务器租用与托管注意事项有哪些

在当今数字化的时代&#xff0c;服务器对于企业和个人的重要性不言而喻。无论是搭建网站、运行应用程序&#xff0c;还是存储数据&#xff0c;服务器都是关键的基础设施。而服务器租用与托管作为常见的选择方式&#xff0c;其中的注意事项你可不能马虎。 企业在进行租用或者是…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】金融风控分析案例-10.3 风险指标可视化监控

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 PostgreSQL金融风控分析之风险指标可视化监控实战一、引言二、案例背景三、数据准备&#xff08;一&#xff09;数据来源与字段说明&#xff08;二&#xff09;数据清洗 四、…...

【AI提示词】贝叶斯分析专家

提示说明 一名专业的贝叶斯推断专家&#xff0c;具备统计建模、数据分析和不确定性决策方面的专长。 提示词 # Role: 贝叶斯分析专家## Profile - language: 中文 - description: 一名专业的贝叶斯推断专家&#xff0c;具备统计建模、数据分析和不确定性决策方面的专长 - ba…...

星云智控自定义物联网实时监控模板-为何成为痛点?物联网设备的多样化-优雅草卓伊凡

星云智控自定义物联网实时监控模板-为何成为痛点&#xff1f;物联网设备的多样化-优雅草卓伊凡 引言&#xff1a;物联网监控的模板革命 在万物互联的时代&#xff0c;设备监控已成为保障物联网系统稳定运行的核心环节。传统的标准化监控方案正面临着设备类型爆炸式增长带来的…...

#跟着若城学鸿蒙#HarmonyOS NEXT学习之Blank组件详解

一、组件介绍 Blank&#xff08;空白&#xff09;组件是HarmonyOS NEXT中一个简单但非常实用的UI组件&#xff0c;它主要用于在布局中创建空白区域&#xff0c;帮助开发者更灵活地控制界面元素之间的间距和布局结构。虽然Blank组件本身不显示任何内容&#xff0c;但它在界面设…...

《Docker 入门与进阶:架构剖析、隔离原理及安装实操》

1 docker 简介 1.1 Docker 的优点 Docker 是一款开放平台&#xff0c;用于应用程序的开发、交付与运行&#xff0c;能将应用和基础架构分离&#xff0c;实现软件快速交付 &#xff0c;还能以统一方式管理应用和基础架构&#xff0c;缩短代码从编写到上线的时间。其核心优势如…...

OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——mqtt库

准备工作 请依照这篇文章搭建环境 OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——环境配置_openharmony交叉编译-CSDN博客 下载 wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.5/gnutls-3.5.9.tar.xz 解压 tar -xf mkdir ./out cd ./out Cmake命…...