【PYG】处理Cora数据集分类任务使用的几个函数log_softmax,nll_loss和argmax
文章目录
- log_softmax
- 解释
- 作用
- 示例
- 解释输出
- nll_loss
- 解释
- 具体操作
- 示例代码
- 解释
- nll_loss+log_softmax=cross_entropy
- 解释
- 代码示例
- 解释
- argmax()
- 解释
- 作用
- 示例代码
- 解释
- 示例输出
log_softmax
F.log_softmax(x, dim=1)
是 PyTorch 中的一个函数,用于对输入张量 x
应用 log-softmax 操作。
解释
-
F.log_softmax
:这是 PyTorch 中的一个函数,位于torch.nn.functional
模块中。它首先对输入进行 softmax 操作,然后取对数。softmax 操作将输入的原始分数转换为概率分布,而取对数可以使后续的计算更稳定且数值范围更适合计算。 -
x
:这是输入张量。通常在神经网络中,它是来自最后一层的输出。 -
dim=1
:这是指定 softmax 操作应用的维度。对于二维张量(例如批处理的数据),dim=1
通常表示在每个样本的类别维度上应用 softmax 操作。
作用
log-softmax 操作的主要作用是在多分类问题中计算模型的输出概率分布,并且在使用负对数似然损失(negative log-likelihood loss,通常用于分类任务)时特别有用。通过先应用 log-softmax,再与目标标签计算负对数似然损失,可以确保计算的数值稳定性。
示例
假设你有一个二维张量 x
,表示模型的未归一化输出(logits),其形状为 [batch_size, num_classes]
。以下是如何使用 F.log_softmax
的示例:
import torch
import torch.nn.functional as F# 模拟模型输出的logits
logits = torch.tensor([[2.0, 1.0, 0.1],[1.0, 3.0, 0.2]])# 应用log-softmax
log_probs = F.log_softmax(logits, dim=1)print(log_probs)
输出可能类似于:
tensor([[-0.4076, -1.4076, -2.3076],[-2.1269, -0.1269, -3.1269]])
解释输出
- 对于第一个样本
logits = [2.0, 1.0, 0.1]
,应用 log-softmax 后的输出为[-0.4076, -1.4076, -2.3076]
。这些值是输入经过 softmax 转换为概率后取对数的结果。 - 对于第二个样本
logits = [1.0, 3.0, 0.2]
,应用 log-softmax 后的输出为[-2.1269, -0.1269, -3.1269]
。
log-softmax 的输出可以直接用于计算损失函数,例如交叉熵损失,这在分类任务中特别有用。
nll_loss
F.nll_loss(out[data.train_mask], data.y[data.train_mask])
是 PyTorch 中用于计算负对数似然损失(Negative Log-Likelihood Loss, NLLLoss)的一种常见用法,通常用于多分类任务。以下是这个函数的详细解释:
解释
-
F.nll_loss
:这是 PyTorch 中的一个函数,用于计算负对数似然损失。它通常与F.log_softmax
结合使用,因为F.nll_loss
期望输入是对数概率(log-probabilities)。 -
out
:这是模型的输出,即经过F.log_softmax
处理后的对数概率张量。形状通常为[num_nodes, num_classes]
。 -
data.train_mask
:这是一个布尔张量,用于指示哪些节点属于训练集。其形状为[num_nodes]
,值为True
的位置表示对应的节点在训练集中。 -
data.y
:这是节点的标签张量,形状为[num_nodes]
。每个元素表示一个节点的类别标签。
具体操作
-
掩码选择:使用
data.train_mask
选择训练集中的节点。out[data.train_mask]
:选择模型输出中属于训练集的节点。data.y[data.train_mask]
:选择标签中属于训练集的节点。
-
计算损失:
F.nll_loss
接收两个参数:input
:对数概率张量,形状为[batch_size, num_classes]
。target
:目标标签张量,形状为[batch_size]
。
-
返回值:返回一个标量,表示训练集上的平均负对数似然损失。
示例代码
假设我们有一个简单的GNN模型,以下是如何使用 F.nll_loss
计算损失的示例代码:
import torch
import torch.nn.functional as F
from torch_geometric.nn import GCNConv
from torch_geometric.datasets import Planetoid
from torch_geometric.transforms import NormalizeFeatures# 加载Cora数据集
dataset = Planetoid(root='/tmp/Cora', name='Cora', transform=NormalizeFeatures())
data = dataset[0]# 定义GCN模型
class GCN(torch.nn.Module):def __init__(self):super(GCN, self).__init__()self.conv1 = GCNConv(dataset.num_node_features, 16)self.conv2 = GCNConv(16, dataset.num_classes)def forward(self, data):x, edge_index = data.x, data.edge_indexx = self.conv1(x, edge_index)x = F.relu(x)x = F.dropout(x, training=self.training)x = self.conv2(x, edge_index)return F.log_softmax(x, dim=1)# 初始化模型和优化器
model = GCN()
optimizer = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=5e-4)
data = data.to('cuda')
model = model.to('cuda')# 训练模型
def train():model.train()optimizer.zero_grad()out = model(data)loss = F.nll_loss(out[data.train_mask], data.y[data.train_mask])loss.backward()optimizer.step()return loss.item()# 评估模型
def test():model.eval()out = model(data)pred = out.argmax(dim=1)correct = (pred[data.test_mask] == data.y[data.test_mask]).sum()acc = int(correct) / int(data.test_mask.sum())return accfor epoch in range(200):loss = train()acc = test()print(f'Epoch {epoch+1}, Loss: {loss:.4f}, Accuracy: {acc:.4f}')
解释
- 数据加载:加载Cora数据集并归一化特征。
- 模型定义:定义一个简单的两层GCN模型。
- 训练和评估:使用
F.nll_loss
计算训练集上的损失,并在每个epoch结束时评估模型在测试集上的准确性。
通过这种方式,F.nll_loss
帮助我们衡量模型在训练集上的表现,并为优化模型提供目标函数。
nll_loss+log_softmax=cross_entropy
为了更简洁地实现负对数似然损失(NLL Loss)和log-softmax的结合,我们可以使用 torch.nn.functional.cross_entropy
。cross_entropy
函数将 log_softmax
和 nll_loss
两个步骤合并在一起,简化了代码,并且在数值上更加稳定和高效。
解释
torch.nn.functional.cross_entropy
:这是 PyTorch 提供的一个函数,用于计算交叉熵损失。它内部会先对输入进行log_softmax
操作,然后计算nll_loss
。input
:未归一化的模型输出(logits),形状为[num_nodes, num_classes]
。target
:目标标签,形状为[num_nodes]
。
代码示例
以下是如何使用 torch.nn.functional.cross_entropy
替代 log_softmax
和 nll_loss
的代码示例:
import torch
import torch.nn.functional as F
from torch_geometric.nn import GCNConv
from torch_geometric.datasets import Planetoid
from torch_geometric.transforms import NormalizeFeatures# 加载Cora数据集
dataset = Planetoid(root='/tmp/Cora', name='Cora', transform=NormalizeFeatures())
data = dataset[0]# 定义GCN模型
class GCN(torch.nn.Module):def __init__(self):super(GCN, self).__init__()self.conv1 = GCNConv(dataset.num_node_features, 16)self.conv2 = GCNConv(16, dataset.num_classes)def forward(self, data):x, edge_index = data.x, data.edge_indexx = self.conv1(x, edge_index)x = F.relu(x)x = F.dropout(x, training=self.training)x = self.conv2(x, edge_index)return x # 返回未归一化的logits# 初始化模型和优化器
model = GCN()
optimizer = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=5e-4)
data = data.to('cuda')
model = model.to('cuda')# 训练模型
def train():model.train()optimizer.zero_grad()out = model(data)loss = F.cross_entropy(out[data.train_mask], data.y[data.train_mask])loss.backward()optimizer.step()return loss.item()# 评估模型
def test():model.eval()out = model(data)pred = out.argmax(dim=1) # 提取预测类别correct = (pred[data.test_mask] == data.y[data.test_mask]).sum()acc = int(correct) / int(data.test_mask.sum())return accfor epoch in range(200):loss = train()acc = test()print(f'Epoch {epoch+1}, Loss: {loss:.4f}, Accuracy: {acc:.4f}')
解释
- 数据加载:加载Cora数据集并归一化特征。
- 模型定义:定义一个简单的两层GCN模型。在前向传播过程中返回未归一化的logits。
- 训练过程:使用
F.cross_entropy
直接计算损失,它将自动对输入进行log_softmax
并计算nll_loss
。 - 评估过程:使用
out.argmax(dim=1)
提取预测类别,并计算准确性。
通过这种方式,我们简化了代码,并且避免了在计算 log_softmax
和 nll_loss
时可能出现的数值问题。
argmax()
pred = out.argmax(dim=1)
是 PyTorch 中用于从模型的输出中提取预测类别标签的一个常用方法。以下是详细解释:
解释
-
out
:这是模型的输出,通常是一个形状为[num_nodes, num_classes]
的张量,其中每一行表示一个节点或样本的类别对数概率(log-probabilities)。 -
argmax(dim=1)
:这是一个张量操作,用于在指定维度上找到最大值的索引。dim=1
表示我们在类别维度上进行操作,因此对于每个节点或样本,argmax(dim=1)
将返回具有最大对数概率的类别索引。
作用
通过 argmax(dim=1)
,我们从模型的输出中提取每个节点或样本的预测类别。对于分类任务,这一步是必要的,因为模型的输出通常是每个类别的对数概率分布,我们需要从中选出概率最大的类别作为预测结果。
示例代码
假设我们有一个GNN模型的输出 out
,其形状为 [num_nodes, num_classes]
,以下是如何使用 argmax
提取预测类别的示例代码:
import torch
import torch.nn.functional as F
from torch_geometric.nn import GCNConv
from torch_geometric.datasets import Planetoid
from torch_geometric.transforms import NormalizeFeatures# 加载Cora数据集
dataset = Planetoid(root='/tmp/Cora', name='Cora', transform=NormalizeFeatures())
data = dataset[0]# 定义GCN模型
class GCN(torch.nn.Module):def __init__(self):super(GCN, self).__init__()self.conv1 = GCNConv(dataset.num_node_features, 16)self.conv2 = GCNConv(16, dataset.num_classes)def forward(self, data):x, edge_index = data.x, data.edge_indexx = self.conv1(x, edge_index)x = F.relu(x)x = F.dropout(x, training=self.training)x = self.conv2(x, edge_index)return F.log_softmax(x, dim=1)# 初始化模型和优化器
model = GCN()
optimizer = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=5e-4)
data = data.to('cuda')
model = model.to('cuda')# 训练模型
def train():model.train()optimizer.zero_grad()out = model(data)loss = F.nll_loss(out[data.train_mask], data.y[data.train_mask])loss.backward()optimizer.step()return loss.item()# 评估模型
def test():model.eval()out = model(data)pred = out.argmax(dim=1) # 提取预测类别correct = (pred[data.test_mask] == data.y[data.test_mask]).sum()acc = int(correct) / int(data.test_mask.sum())return accfor epoch in range(200):loss = train()acc = test()print(f'Epoch {epoch+1}, Loss: {loss:.4f}, Accuracy: {acc:.4f}')
解释
- 数据加载:加载Cora数据集并归一化特征。
- 模型定义:定义一个简单的两层GCN模型。
- 训练和评估:在训练过程中使用
F.nll_loss
计算损失。在评估过程中使用out.argmax(dim=1)
提取预测类别,并计算准确性。
示例输出
假设 out
的输出如下:
out = torch.tensor([[0.1, 2.3, 0.4],[1.2, 0.8, 3.5],[0.6, 0.7, 0.2]])
使用 out.argmax(dim=1)
提取预测类别:
pred = out.argmax(dim=1)
print(pred)
输出将是:
tensor([1, 2, 1])
这表示模型预测第一个样本的类别为1,第二个样本的类别为2,第三个样本的类别为1。通过这种方式,我们可以从模型的输出中提取每个样本的预测类别,用于后续的评估或其他处理。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
【PYG】处理Cora数据集分类任务使用的几个函数log_softmax,nll_loss和argmax
文章目录 log_softmax解释作用示例解释输出 nll_loss解释具体操作示例代码解释 nll_losslog_softmaxcross_entropy解释代码示例解释 argmax()解释作用示例代码解释示例输出 log_softmax F.log_softmax(x, dim1) 是 PyTorch 中的一个函数,用于对输入张量 x 应用 log…...
![](https://img-blog.csdnimg.cn/direct/3b9867a62d63473f9b0db00a3451225d.png#pic_center)
Labview绘制柱状图
废话不多说,直接上图 我喜欢用NXG风格,这里我个人选的是xy图。 点击箭头指的地方 选择直方图 插值选择第一个 直方图类型我选的是第二个效果如图。 程序部分如图。 最后吐槽一句,现在看CSDN好多文章都要收费了,哪怕一些简单的入…...
![](https://www.ngui.cc/images/no-images.jpg)
使用Python实现一个简单的密码管理器
文章目录 一、项目概述二、实现步骤2.1 安装必要的库2.2 设计密码数据结构2.3 实现密码加密和解密2.4 实现主要功能2.4.1 添加新密码2.4.2 显示所有密码2.4.3 查找特定密码2.4.4 更新密码2.4.5 删除密码 2.5 实现用户界面 三、代码示例3.1 加密和解密示例3.2 用户界面示例 在现…...
![](https://img-blog.csdnimg.cn/direct/8e7e7598eebc41d7b15526074f955892.png)
【云原生】服务网格(Istio)如何简化微服务通信
🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、微服务架构的兴起 2、Istio:服务网格的佼…...
![](https://www.ngui.cc/images/no-images.jpg)
spring boot 整合 sentinel
注意版本问题 我这是jdk11 、spring boot 2.7.15 、 alibaba-sentinel 2.1.2.RELEASE <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.15</version><…...
![](https://img-blog.csdnimg.cn/direct/9422029a61c643d3a54787de40ee5b40.png)
蜜雪冰城小程序逆向
app和小程序算法一样 小程序是wasm...
![](https://www.ngui.cc/images/no-images.jpg)
pbootcms提交留言成功后跳转到指定的网址
pbootcms在线留言表单提交成功后,如何跳转到指定的网址,默认提交留言后留在原来的页面,如果提交后需要跳转到指定网址,我们需要对文件进行修改。首先我们打开/core-/function/helper.php文件找到第162行左右代码: ech…...
![](https://img-blog.csdnimg.cn/direct/c3822225c6b34e3295dcb2d554338773.jpeg)
16、matlab求导、求偏导、求定积分、不定积分、数值积分和数值二重积分
0)前言 在MATLAB中,对函数进行不同形式的求导、求积分操作是非常常见的需求,在工程、科学等领域中经常会用到。以下是关于求导、求积分以及数值积分的简介: 求导:在MATLAB中可以使用diff函数对函数进行求导操作。diff…...
![](https://img-blog.csdnimg.cn/img_convert/1f338c5bb4f98b2deccf4f433b2f6a5c.png)
MySQL 9.0创新版发布!功能又进化了!
作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…...
![](https://www.ngui.cc/images/no-images.jpg)
后端系统的安全性
后端系统的安全性 后端系统的安全性是任何Web应用或服务的核心组成部分,它涉及保护数据、用户隐私以及系统免受恶意攻击。以下是后端安全的一些关键点: 认证和授权:确保只有经过身份验证的用户才能访问特定资源。这通常包括使用用户名/密码…...
![](https://www.ngui.cc/images/no-images.jpg)
.net 百度翻译接口核心类
百度翻译api :http://developer.baidu.com/wiki/index.php?title帮助文档首页/百度翻译/翻译AP 核心翻译类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Newtonsoft.Json; using System.Net; using System.I…...
![](https://img-blog.csdnimg.cn/direct/a3626e8236cc4acea495bb1f6366a8f5.png)
安卓应用开发学习:通过腾讯地图SDK实现定位功能
一、引言 这几天有些忙,耽误了写日志,但我的学习始终没有落下,有空我就会研究《 Android App 开发进阶与项目实战》一书中定位导航方面的内容。在我的手机上先后实现了“获取经纬度及地理位置描述信息”和“获取导航卫星信息”功能后&#x…...
![](https://img-blog.csdnimg.cn/direct/240610d8f08948ba8ad86be3478c3797.png)
iptable精讲
SNAT策略 SNAT策略的典型应用环境 局域网主机共享单个公网IP地址接入Internet SNAT策略的原理 源地址转换,Source Network Address Translantion 修改数据包的源地址 部署SNAT策略 1.准备二台最小化虚拟机修改主机名 主机名:gw 主机名࿱…...
![](https://img-blog.csdnimg.cn/img_convert/2b78344d285d157363baacbe4d731762.jpeg)
2024 年如何构建 AI 软件
人工智能 (AI) 是当今 IT 行业最热门的话题,受到大型科技公司、大型企业和投资者的青睐。如果有人不参与 AI,他们就出局了。虽然“AI 泡沫”一词尚未公开使用,但街上的每个人都可能听说过 AI 将取代我们的工作(可能不会࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
Python实战,桌面小游戏,剪刀石头布
注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程: Python项目开发实战_桌面小游戏-剪刀石头布_编程案例解析实例详解课程教程.pdf 创建一个基于Python的桌面小游戏“剪刀石头布”是一个很好的编程实践…...
![](https://img-blog.csdnimg.cn/direct/f50cc38f632c4dc587c2a5911379ce1a.png)
Hadoop权威指南-读书笔记-01-初识Hadoop
Hadoop权威指南-读书笔记 记录一下读这本书的时候觉得有意思或者重要的点~ 第一章—初识Hadoop Tips: 这个引例很有哲理嘻嘻😄,道出了分布式的灵魂。 1.1 数据!数据! 这一小节主要介绍了进入大数据时代,面…...
![](https://img-blog.csdnimg.cn/direct/baf831f00cbe44b7948801ee268fbf29.png)
HttpServletResponse设置headers返回,发现headers中缺少“Content-Length“和“Content-Type“两个参数。
业务中需要将用httpUtils请求返回的headers全部返回,塞到HttpServletResponse中,代码如下: HttpServletResponse response;// 返回headers Arrays.stream(httpResponse.getHeaders()).forEach(header -> response.setHeader(header.getNa…...
![](https://img-blog.csdnimg.cn/direct/d62902f3d91c498481a4f07ddfdc8745.jpeg)
GraphPad Prism生物医学数据分析软件下载安装 GraphPad Prism轻松绘制各种图表
Prism软件作为一款功能强大的生物医学数据分析与可视化工具,其绘图功能尤为突出。该软件不仅支持绘制基础的图表类型,如直观明了的柱状图、展示数据分布的散点图,以及描绘变化趋势的曲线图,更能应对复杂的数据呈现需求,…...
![](https://www.ngui.cc/images/no-images.jpg)
7/1 uart
uart4.c #include "uart4.h"//UART4_RX > PB2 //UART4_TX > PG11char rebuf[51] {0}; //rcc/gpio/uart4初始化 void hal_uart4_init() {/********RCC章节初始化*******///1.使能GPIOB组控制器 MP_AHB4ENSETR[1] 1RCC->MP_AHB4ENSETR | (0x1 << 1)…...
![](https://img-blog.csdnimg.cn/direct/055ebf2d838f4a5e9519828aae9b2158.png)
zdppy_api+vue3+antd开发前后端分离的预加载卡片实战案例
后端代码 import api import upload import timesave_dir "uploads"async def rand_content(request):key api.req.get_query(request, "key")time.sleep(0.3)return api.resp.success(f"{key} " * 100)app api.Api(routes[api.resp.get(&qu…...
![](https://img-blog.csdnimg.cn/img_convert/fc7e7c80e706471e774da08f778e9a9f.jpeg)
别小看手机导航,这些隐藏功能大部分人可能都不知道
在科技日新月异的今天,手机导航已经成为我们日常生活中不可或缺的一部分。它不仅仅是指引我们前往目的地的工具,更隐藏着许多黑科技功能,极大地丰富了我们的出行体验。 今天,让我们一起探索手机导航中那些鲜为人知却大有用处的隐…...
![](https://www.ngui.cc/images/no-images.jpg)
Lua实现链表(面向对象应用)
Lua实现面向对象 面向对象核心三要素Lua面向对象大致原理面向对象示例继承与多态示例 面向对象核心三要素 1.封装:对一个事物的抽象为一些属性和行为动作的集合,封装将属性和行为动作(操作数据的方法)绑定在一起,并隐藏…...
![](https://www.ngui.cc/images/no-images.jpg)
每隔一个小时gc一次的问题
原文地址https://www.cnblogs.com/jiangxinlingdu/p/7581064.html 设置一下这个 -XX:ExplicitGCInvokesConcurrent 或 -XXExplicitGCInvokesConcurrentAndUnloadsClasses 并且检查一下,并下面的值设置变大 java.rmi.dgc.leaseValue sun.rmi.dgc.client.gcInterv…...
![](https://img-blog.csdnimg.cn/img_convert/a73e169fbfe9f2297ab0894e79b7906a.jpeg)
VBA数据库解决方案第十二讲:如何判断数据库中数据表是否存在
《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…...
![](https://img-blog.csdnimg.cn/direct/fc2ddcad38314c878032819ead5b66eb.png)
五、Spring IoCDI ★ ✔
5. Spring IoC&DI 1. IoC & DI ⼊⻔1.1 Spring 是什么?★ (Spring 是包含了众多⼯具⽅法的 IoC 容器)1.1.1 什么是容器?1.1.2 什么是 IoC?★ (IoC: Inversion of Control (控制反转))总…...
![](https://img-blog.csdnimg.cn/direct/9410651043ce4cf4bf4d959ea3b085b9.png)
计算机网络八股文
计算机网络体系架构? OSI结构:理论上的 7应用层:定义了应用进程间通信和交互的规则,常见协议有HTTP、SFTP、DNS、WebSocket6表示层:数据的表示、安全、压缩。确保一个系统的应用层所发消息能被另一个系统的应用层读取…...
![](https://img-blog.csdnimg.cn/direct/f6a98945cc7047d5b60068a736460763.png)
科普文:一文搞懂jvm原理(四)运行时数据区
概叙 科普文:一文搞懂jvm(一)jvm概叙-CSDN博客 科普文:一文搞懂jvm原理(二)类加载器-CSDN博客 科普文:一文搞懂jvm原理(三)执行引擎-CSDN博客 前面我们介绍了jvm,jvm主要包括两个子系统和两个组件: Class loader(类…...
![](https://img-blog.csdnimg.cn/direct/c654bdb6808a47318d9f7152903ffa83.png)
《昇思25天学习打卡营第5天|数据变换 Transforms》
文章目录 前言:今日所学:1. Common Transforms2. Vision Transforms3. Text Transforms 前言: 我们知道在进行神经网络训练的时候,通常要将原始数据进行一系列的数据预处理操作才会进行训练,所以MindSpore提供了不同类…...
![](https://img-blog.csdnimg.cn/direct/0281f5f8c4d544d0b66df3c60d7e0673.png)
详细分析Oracle修改默认的时间格式(四种方式)
目录 前言1. 会话级别2. 系统级别3. 环境配置4. 函数格式化5. 总结 前言 默认的日期和时间格式由参数NLS_DATE_FORMAT控制 如果需要修改默认的时间格式,可以通过修改会话级别或系统级别的参数来实现 1. 会话级别 在当前会话中设置日期格式,这只会影响…...
![](https://img-blog.csdnimg.cn/img_convert/669dfd7f3edff8ac3f503b30f1e1ce3f.jpeg)
以 Vue 3 项目为例,你是否经常遇到 import 语句顺序混乱的问题?要想解决它其实很容易!
大家好,我是CodeQi! 在项目开发过程中,我们经常会遇到项目中的 import 语句顺序混乱的问题。 这不仅会影响代码的可读性,还可能使我们代码在提交的时候产生不必要的冲突。 面对这种情况,要想解决它其实很容易。 通过合理的规范和自动化工具,我们可以确保 import 语句…...
![](https://www.ngui.cc/images/no-images.jpg)
mysql数据库ibdata文件被误删后恢复数据的方法
使用mysql数据库的时候不小心误删除了ibdata和ib_logfile文件,但是幸好.ibd文件还在。这种情况下其实数据还在并未丢失,丢失的是表结构。查询表数据时会报错:ERROR 1146 (42S02): Table ‘testdb.test’ doesn’t exist,其实是说表…...
![](https://img-blog.csdnimg.cn/img_convert/68ccf4e81bef1f36c3849716effe6c13.png)
eBPF技术揭秘:DeepFlow如何引领故障排查,提升运维效率
DeepFlow 实战:eBPF 技术如何提升故障排查效率 目录 DeepFlow 实战:eBPF 技术如何提升故障排查效率 微服务架构系统中各个服务、组件及其相互关系的全景 零侵扰分布式追踪(Distributed Tracing)的架构和工作流程 关于零侵扰持…...
![](https://img-blog.csdnimg.cn/direct/c02a66199f8b435ebac1d25c306e7adc.png)
C++视觉开发 三.缺陷检测
一.距离变换 1.概念和功能 距离变换是一种图像处理技术,用于计算图像中每个像素到最近的零像素(背景像素)的距离。它常用于图像分割、形态学操作和形状分析等领域。它计算图像中每个像素到最近的零像素(背景像素)的距…...
![](https://img-blog.csdnimg.cn/img_convert/5ef00b89bd9e72ecc74ed05110576322.png)
使用 Amazon Bedrock Converse API 简化大语言模型交互
本文将介绍如何使用 Amazon Bedrock 最新推出的 Converse API,来简化与各种大型语言模型的交互。该 API 提供了一致的接口,可以无缝调用各种大型模型,从而消除了需要自己编写复杂辅助功能函数的重复性工作。文中示例将展示它相比于以前针对每…...
![](https://www.ngui.cc/images/no-images.jpg)
第二十一章 函数(Python)
文章目录 前言一、定义函数二、函数参数三、参数类型四、函数返回值五、函数类型1、无参数,无返回值2、无参数,有返回值3、有参数,无返回值4、有参数,有返回值 六、函数的嵌套七、全局变量和局部变量1、局部变量2、全局变量 前言 …...
![](https://img-blog.csdnimg.cn/direct/de93e10a8fd946e5906ad39b53015387.gif)
使用pyqt5编写一个七彩时钟
使用pyqt5编写一个七彩时钟 效果代码解析定义 RainbowClockWindow 类初始化用户界面显示时间方法 完整代码 在这篇博客中,我们将使用 PyQt5 创建一个简单的七彩数字时钟。 效果 代码解析 定义 RainbowClockWindow 类 class RainbowClockWindow(QMainWindow):def _…...
![](https://img-blog.csdnimg.cn/direct/6eb9ab3aba19438f9ebd96d6a4b9b3db.png)
【Linux】:命令行参数
朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux命令行参数的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入…...
![](https://img-blog.csdnimg.cn/direct/259c1cc550aa4a2891383328e618e978.png)
高考假期预习指南,送给迷茫的你
高考结束,离别了熟悉的地方,踏上远方。 你,,迷茫吗? 大学是什么?到了大学我该怎样学习?真像网上说的毕业即失业吗? 大学是一个让你学会一技之长的地方,到了大学找到自…...
![](https://www.ngui.cc/images/no-images.jpg)
独孤思维:负债了,还可以翻身吗
01 其实独孤早年也负债。 负债并不可怕。 可怕的是因为负债而催生的想要快速赚钱的心态。 越是有这种心态,越是不可能赚到钱。 相反,可能会让你陷入恶性循环中。 盲目付费,盲目寄希望于某个项目或者某个人。 当成唯一的救命稻草。 这…...
![](https://img-blog.csdnimg.cn/direct/c59635faadbb469ba16adb1345365970.png)
SwiftUI八与UIKIT交互
代码下载 SwiftUI可以在苹果全平台上无缝兼容现有的UI框架。例如,可以在SwiftUI视图中嵌入UIKit视图或UIKit视图控制器,反过来在UIKit视图或UIKit视图控制器中也可以嵌入SwiftUI视图。 本文展示如何把landmark应用的主页混合使用UIPageViewController和…...
![](https://img-blog.csdnimg.cn/direct/998cd2ea047e466f9168d42be1412f28.png)
RedHat9 | 内部YUM本地源服务器搭建
服务器参数 标识公司内部YUM服务器主机名yum-server网络信息192.168.37.1/24网络属性静态地址主要操作用户root 一、基础环境信息配置 修改主机名 [rootyum-server ~]# hostnamectl hostname yum-server添加网络信息 [rootyum-server ~]# nmcli connection modify ens160 …...
![](https://img-blog.csdnimg.cn/img_convert/d5007598c02443228962c847c5e850a6.png)
无偏归一化自适应心电ECG信号降噪方法(MATLAB)
心电信号作为一种生物信号,含有大量的临床应用价值的信息,在现代生命医学研究中占有重要的地位。但心电信号低频、低幅值的特点,使其在采集和传输的过程中经常受到噪声的干扰,使心电波形严重失真,从而影响后续的病情分…...
![](https://img-blog.csdnimg.cn/direct/ba74c993a3cb41ebbfc8466f48917733.png)
AI基本概念(人工智能、机器学习、深度学习)
人工智能 、 机器学习、 深度学习的概念和关系 人工智能 (Artificial Intelligence)AI- 机器展现出人类智慧机器学习 (Machine Learning) ML, 达到人工智能的方法深度学习 (Deep Learning)DL,执行机器学习的技术 从范围…...
![](https://img-blog.csdnimg.cn/img_convert/e9953ec56027e20a6d65a9d79c7bcac3.png)
LabVIEW幅频特性测试系统
使用LabVIEW软件开发的幅频特性测试系统。该系统整合了Agilent 83732B信号源与Agilent 8563EC频谱仪,通过LabVIEW编程实现自动控制和数据处理,提供了成本效益高、操作简便的解决方案,有效替代了昂贵的专用仪器,提高了测试效率和设…...
![](https://img-blog.csdnimg.cn/direct/4ef535494b9e45b6ba84786947b477c7.png)
校园卡手机卡怎么注销?
校园手机卡的注销流程可以根据不同的运营商和具体情况有所不同,但一般来说,以下是注销校园手机卡的几种常见方式,我将以分点的方式详细解释: 一、线上注销(通过手机APP或官方网站) 下载并打开对应运营商的…...
![](https://www.ngui.cc/images/no-images.jpg)
logback自定义规则脱敏
自定义规则conversionRule public class LogabckMessageConverter extends MessageConverter {Overridepublic String convert(ILoggingEvent event) {String msg event.getMessage();if ("INFO".equals(event.getLevel().toString())) {msg .....脱敏实现}return …...
![](https://img-blog.csdnimg.cn/direct/afec5ae7f045440bb56d1735b3097a40.png)
高效批量复制与覆盖:一键实现文件管理,轻松应对同名文件,简化工作流程
在数字时代,我们每天都在与海量的文件和数据打交道。你是否曾经遇到过这样的情况:需要批量复制文件到指定文件夹,但一遇到同名文件就头疼不已,要么手动一个个确认覆盖,要么冒着数据丢失的风险直接操作?别担…...
![](https://img-blog.csdnimg.cn/img_convert/0765438b29bdfa24efa5e98e832933c9.gif)
vue3中使用Antv G6渲染树形结构并支持节点增删改
写在前面 在一些管理系统中,会对组织架构、级联数据等做一些管理,你会怎么实现呢?在经过调研很多插件之后决定使用 Antv G6 实现,文档也比较清晰,看看怎么实现吧,先来看看效果图。点击在线体验 实现的功能…...
![](https://img-blog.csdnimg.cn/img_convert/7401e379814b62bb2bbb89db5a7a937c.gif)
【PB案例学习笔记】-26制作一个带浮动图标的工具栏
写在前面 这是PB案例学习笔记系列文章的第26篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gite…...
![](https://img-blog.csdnimg.cn/direct/ae112fe6b7c0454dadb31f7839ffb998.png)
反向沙箱技术:安全隔离上网
在信息化建设不断深化的今天,业务系统的安全性和稳定性成为各公司和相关部门关注的焦点。面对日益复杂的网络威胁,传统的安全防护手段已难以满足需求。深信达反向沙箱技术,以其独特的设计和强大的功能,成为保障政务系统信息安全的…...
![](https://img-blog.csdnimg.cn/img_convert/87b938d10b78fb1ee670cce072c62cdc.png)
【Mac】Boxy SVG for Mac(矢量图编辑器)及同类型软件介绍
软件介绍 Boxy SVG 是一款功能强大的矢量图形编辑器,专门为 macOS 平台设计开发。它主要用于创建和编辑 SVG(可缩放矢量图形)文件,是设计师和开发者们制作矢量图形的理想工具。 以下是关于 Boxy SVG 的主要特点和功能:…...
![](https://www.ngui.cc/images/no-images.jpg)
定个小目标之刷LeetCode热题(41)
338. 比特位计数 给你一个整数 n ,对于 0 < i < n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n 1 的数组 ans 作为答案。 今天看一下这道简单题,主要考查位运算,代码如下 class Solution {pu…...
![](https://i-blog.csdnimg.cn/direct/be3be99b8c9b49b69393d7cbed54f41c.jpeg)
lnmp php7 安装ssh2扩展
安装ssh2扩展前必须安装libssh2包 下载地址: wget http://www.libssh2.org/download/libssh2-1.11.0.tar.gzwget http://pecl.php.net/get/ssh2-1.4.tgz (这里要换成最新的版本) 先安装 libssh2 再安装 SSH2: tar -zxvf libssh2-1.11.0.tar.gzcd libss…...
![](https://www.ngui.cc/images/no-images.jpg)
新特性之C++17
目录 u8字符字面量 noexcept作为类型系统的一部分 Lambda表达式捕获*this constexpr新特性 编译期的if constexpr语句 constexpr的Lambda表达式 变量新特性 inline变量 结构化绑定 if和switch语句中的初始化器 强制的复制省略(返回值优化) 临时物质化 模…...
![](https://www.ngui.cc/images/no-images.jpg)
2024年6月份找工作和面试总结
转眼间6月份已经过完了,2024年已经过了一半,希望大家都找到了合适的工作。 本人前段时间写了5月份找工作的情况,请查看2024年5月份面试总结-CSDN博客 但是后续写的总结被和谐了,不知道这篇文章能不能发出来。 1、6月份面试机会依…...
![](https://www.ngui.cc/images/no-images.jpg)
nuxt3搭建和部署
Nuxt 3是一个基于Vue 3的静态网站生成框架,它提供了高性能、SEO友好的Web应用程序开发体验。Nuxt 3重写了许多核心代码,增加了新功能,如基于Vite的构建系统、改进的路由系统、数据获取和插件系统。它支持TypeScript和多种渲染模式(…...
![](https://www.ngui.cc/images/no-images.jpg)
新款捷尼赛思G80内外升级,6月1日正式上市
最新消息,新款捷尼赛思G80将于6月1日开幕的大湾区车展正式上市。该车预售价已公布,豪华版与旗舰版车型分别定价为33.58万元和45.68万元。新款捷尼赛思G80在设计上进行了全面升级。其“勇者之徽”阔型格栅与“灵感之翼”LED大灯组相得益彰,不仅提供了更精密的光源控制,还展现…...
![](https://www.ngui.cc/images/no-images.jpg)
纯电续航提升!岚图FREE318预告发布!
作为东风旗下一个专注于高级、豪华的新能源品牌,岚图旗下的车型从产品力上来看还是相当不错的,作为岚图的第一款车型,岚图FREE也收获到了一部分消费者的喜欢。而在今天,岚图官方发布了一组岚图FREE318车型的官图,新车将会在5月30日开启预售。外观方面,岚图FREE318基本上延…...
![](https://img-blog.csdnimg.cn/direct/33517f8ccc7841e0bb97ce57c39490ac.jpeg#pic_center)
new CCDIKSolver( OOI.kira, iks ); // 创建逆运动学求解器
demo案例 new CCDIKSolver(OOI.kira, iks); 在使用某个特定的库或框架来创建一个逆运动学(Inverse Kinematics, IK)求解器实例。逆运动学在机器人学、动画和计算机图形学等领域中非常重要,它用于根据期望的末端执行器(如机器人的…...
![](https://img-blog.csdnimg.cn/direct/4d3925d7a48e4637a54f1468a208a324.png#pic_center)
Pi 母公司将开发情感 AI 商业机器人;Meta 科学家:Sora 不是视频生成唯一方向丨RTE 开发者日报 Vol.214
开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…...
![](https://img-blog.csdnimg.cn/direct/9b4418c20f4a465d80d54f4343f58b79.png)
LLama学习记录
学习前: 五大问题: 为什么SwiGLU激活函数能够提升模型性能?RoPE位置编码是什么?怎么用的?还有哪些位置编码方式?GQA(Grouped-Query Attention, GQA)分组查询注意力机制是什么&…...
![](https://img-blog.csdnimg.cn/direct/eb94af75ddf9469e98f60a639e940ab3.png)
SpringSecurity登录和校验流程简述
认证: 验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户 授权: 经过认证后判断当前用户是否有权限进行某个操作 一、入门案例实现 搭建springboot工程后,创建启动类和Controller,引入SpringSecurity依…...