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

升级 CUDA Toolkit 12.9 与 cuDNN 9.9.0 后验证指南:功能与虚拟环境检测

#工作记录

在 NVIDIA 发布 CUDA Toolkit 12.9 与 cuDNN 9.9.0 后,开发者纷纷选择升级以获取新特性和性能提升。

CUDA Toolkit 12.9 与 cuDNN 9.9.0 发布,带来全新特性与优化-CSDN博客

然而,升级完成并不意味着大功告成,确认升级后功能正常,且对 Windows 系统上原有的 conda 和 virtualenv 等虚拟环境无影响至关重要。

以下是详细的验证步骤和方法。

一、验证 CUDA Toolkit 12.9 功能

1. 检查 CUDA 编译器

打开 Windows 命令提示符,输入nvcc -V并回车。若安装正确,命令行将返回 CUDA Toolkit 12.9 的版本信息,如 “Cuda compilation tools, release 12.9, V12.9.103”。

nvcc -V

C:\Users\love>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Apr__9_19:29:17_Pacific_Daylight_Time_2025
Cuda compilation tools, release 12.9, V12.9.41
Build cuda_12.9.r12.9/compiler.35813241_0 

若未显示对应信息或提示命令未找到,说明 CUDA 编译器安装存在问题,可能需要重新安装或检查系统环境变量配置。

2. 运行 CUDA 示例项目

CUDA Toolkit 安装目录(默认路径为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\extras\demo_suite )下包含可直接运行的示例程序。

以deviceQuery为例,可通过以下方式运行:

.\deviceQuery.exe

打开 CMD 或 PowerShell,使用cd命令导航到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\extras\demo_suite 目录,然后运行.\deviceQuery.exe 。

若运行结果中出现类似以下信息:


Detected 1 CUDA Capable device(s)

Device 0: "NVIDIA GeForce RTX 3090"

CUDA Driver Version / Runtime Version 12.9 / 12.9

CUDA Capability Major/Minor version number: 8.6

Total amount of global memory: 24576 MBytes (25769279488 bytes)

...

Result = PASS

则表明 CUDA 能够正确识别 GPU 设备,且基本的设备查询功能正常,GPU 加速功能初步可用。

二、验证 CUDA Toolkit 12.9 与 cuDNN 9.9.0 在虚拟环境中的功能

1. 检查 conda 虚拟环境

打开命令提示符,输入conda activate [虚拟环境名称],将目标 conda 虚拟环境激活。

例如,若虚拟环境名为 “myenv”,则输入conda activate myenv。

“100% 成功的 PyTorch CUDA GPU 支持” 安装攻略-CSDN博客

在激活的 conda 虚拟环境中,运行以下验证代码:

使用 PyTorch 验证

import torch  # 导入 PyTorch 库print("PyTorch 版本:", torch.__version__)  # 打印 PyTorch 的版本号# 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("设备:", device)  # 打印当前使用的设备
print("CUDA 可用:", torch.cuda.is_available())  # 打印 CUDA 是否可用
print("cuDNN 已启用:", torch.backends.cudnn.enabled)  # 打印 cuDNN 是否已启用# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
print("支持的 CUDA 版本:", torch.version.cuda)
print("cuDNN 版本:", torch.backends.cudnn.version())# 创建两个随机张量(默认在 CPU 上)
x = torch.rand(5, 3)
y = torch.rand(5, 3)# 将张量移动到指定设备(CPU 或 GPU)
x = x.to(device)
y = y.to(device)# 对张量进行逐元素相加
z = x + y# 打印结果
print("张量 z 的值:")
print(z)  # 输出张量 z 的内容

若输出显示torch.cuda.is_available()为True,且支持的 CUDA 版本、cuDNN 版本信息与预期相符,张量运算能在 GPU 设备上正常执行,说明 CUDA Toolkit 12.9 与 cuDNN 9.9.0 在该 conda 虚拟环境中功能正常。

附件1

使用 TensorFlow 验证

import tensorflow as tfprint(tf.test.is_gpu_available())print(tf.config.list_physical_devices('GPU'))

若tf.test.is_gpu_available()返回True,且能正确列出系统中的 GPU 设备,则表示 TensorFlow 可借助 CUDA 和 cuDNN 在该虚拟环境中使用 GPU 加速功能。

2. 检查 virtualenv 虚拟环境

进入 virtualenv 虚拟环境对应的 Scripts 目录(例如虚拟环境安装在F:\PythonProjects\SkyReels-V2,则进入F:\PythonProjects\SkyReels-V2),在命令提示符中运行.venv\Scripts\activate激活虚拟环境,然后输入python进入python环境。

.venv\Scripts\activate

(.venv) PS F:\PythonProjects\SkyReels-V2> 

python

(.venv) PS F:\PythonProjects\SkyReels-V2> python
Python 3.10.16 | packaged by Anaconda, Inc. | (main, Dec 11 2024, 16:19:12) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>  

在激活的 virtualenv 虚拟环境中,同样运行上述 PyTorch 和 TensorFlow 的验证代码。若运行结果与在 conda 虚拟环境下类似,即各框架能正确识别 CUDA 和 cuDNN,且可利用 GPU 进行运算,则可确认升级 CUDA Toolkit 12.9 和 cuDNN 9.9.0 对该 virtualenv 虚拟环境无不良影响。

附件2

根据在 conda 虚拟环境和 virtualenv 虚拟环境中的验证情况(见图片附件 1、附件 2):

  • 在 conda 虚拟环境中,PyTorch 版本为2.8.0.dev20256327+cu128,检测到设备为cuda:0 ,CUDA 可用返回TruecuDNN 已启用返回True,支持的 CUDA 版本为12.8 ,cuDNN 版本为90791 。最终张量运算结果正常,且运行在device='cuda:0' 上。
  • 在 virtualenv 虚拟环境中,PyTorch 版本为2.5.1+cu124 ,检测到设备为cuda:0 ,CUDA 可用返回TruecuDNN 已启用返回True,支持的 CUDA 版本为12.4 ,cuDNN 版本为98108 。最终张量运算结果正常,且运行在device='cuda:0' 上。
    若出现异常,如torch.cuda.is_available()返回False,可能是 CUDA、cuDNN 或 PyTorch 安装存在问题,需进一步排查。

三、总结

关于兼容性和验证时显示的版本问题

在深度学习领域,CUDA、cuDNN 和 torch 之间具备向下兼容特性。这得益于它们的自动适配安装机制,会依据当前环境以及已有库状况,安装最合适版本,所以开发者无需因验证版本号与安装版本号不一致而忧心。

目前,torch 官方尚未发布支持 CUDA 12.9 的版本。当在 Windows 主系统完成 CUDA Toolkit 12.9 与 cuDNN 9.9.0 升级后,若未在 conda、virtualenv 等虚拟环境中另行安装适配新版本的库,验证时会呈现虚拟环境中原先的版本信息。

比如,即便主系统已安装 cuDNN 9.9.0,可虚拟环境若未变动安装,验证时仍可能显示为 9070(即原安装的 9.7 版本 )或其他原版本号。

关于验证目的性的回归说明

而进行这些验证,主要是为确认在 Windows 主系统中完成 CUDA Toolkit 12.9 与 cuDNN 9.9.0 升级后,不会对系统内包括 conda、virtualenv 等虚拟环境中的 CUDA、cuDNN 及其他库的正常使用造成影响,保证升级安装基本不会干扰生产力环境。

通过以上对 CUDA Toolkit 12.9、cuDNN 9.9.0 功能的验证,以及在 conda 和 virtualenv 虚拟环境中的测试,开发者能够全面确认升级操作的有效性和稳定性,确保后续基于 GPU 加速的开发工作顺利进行。

若在验证过程中遇到问题,可参考 NVIDIA 官方文档、相关开源社区或技术论坛寻求解决方案。

相关文章:

升级 CUDA Toolkit 12.9 与 cuDNN 9.9.0 后验证指南:功能与虚拟环境检测

#工作记录 在 NVIDIA 发布 CUDA Toolkit 12.9 与 cuDNN 9.9.0 后,开发者纷纷选择升级以获取新特性和性能提升。 CUDA Toolkit 12.9 与 cuDNN 9.9.0 发布,带来全新特性与优化-CSDN博客 然而,升级完成并不意味着大功告成,确认升级后…...

湖仓一体架构解析:如何平衡数据灵活性与分析性能?

一、什么是湖仓一体架构?解决哪些核心问题? 在数据爆炸的时代,企业面临着如何高效处理和分析海量数据的挑战。传统架构难以同时满足灵活性和性能需求,湖仓一体架构应运而生。 传统数据架构的局限 数据湖(存储各类原…...

56、【OS】【Nuttx】编码规范解读(四)

背景 接之前 blog 53、【OS】【Nuttx】编码规范解读(一) 54、【OS】【Nuttx】编码规范解读(二) 55、【OS】【Nuttx】编码规范解读(三) 分析了行宽格式,注释要求,花括号风格等&#…...

MySQL基础关键_007_DQL 练习

目 录 一、题目 二、答案(不唯一) 1.查询每个部门薪资最高的员工信息 2.查询每个部门高于平均薪水的员工信息 3. 查询每个部门平均薪资等级 4.查询部门中所有员工薪资等级的平均等级 5.不用分组函数 max 查询最高薪资 6.查询平均薪资最高的部门编…...

气泡图、桑基图的绘制

1、气泡图 使用气泡图分析某一年中国同欧洲各国之间的贸易情况。 气泡图分析的三个维度: • 进口额:横轴 • 出口额:纵轴 • 进出口总额:气泡大小 数据来源:链接: 国家统计局数据 数据概览(进出口总额&…...

数据库Mysql_联合查询

或许自己的不完美才是最完美的地方,那些让自己感到不安的瑕疵,最终都会变成自己的特色。 ----------陳長生. 1.介绍 1.1.为什么要进行联合查询 在数据设计的时候,由于范式的需求,会被分为多个表,但是当我们要查询数据…...

数字孪生:解码智慧城市的 “数字神经系统”

当城市规模以惊人速度扩张,传统管理模式在交通拥堵、能源浪费、应急响应滞后等问题面前渐显乏力。数字孪生技术正以 “数字镜像” 重构城市运作逻辑,为智慧城市装上一套高效、智能的 “数字神经系统”。通过将物理世界的城市映射到虚拟空间,实…...

开源项目:optimum-quanto库介绍

项目地址:https://github.com/huggingface/optimum-quanto 官网介绍:https://huggingface.co/blog/quanto-introduction 量化是一种技术,通过使用低精度数据类型(如 8 位整数 (int8))而不是通常…...

C++学习:六个月从基础到就业——C++11/14:lambda表达式

C学习:六个月从基础到就业——C11/14:lambda表达式 本文是我C学习之旅系列的第四十篇技术文章,也是第三阶段"现代C特性"的第二篇,主要介绍C11/14中引入的lambda表达式。查看完整系列目录了解更多内容。 引言 Lambda表达…...

cesium基础设置

在上节新建的程序中,我们会看到有一行小字: 原因为我们没有输入token,想要让这行小字消失的方法很简单,前往cesium的官网注册账号申请token.然后在App.vue中如下方式添加token 保存后即可发现小字消失. 如果连logo都想去掉呢? 在源代码中,我们初始化了一个viwer,即查看器窗口…...

一些好玩的东西

‌🚀 终极挑战:用 curl 玩《星球大战》‌ telnet towel.blinkenlights.nl # 其实不是 curl,但太经典了! ‌效果‌:在终端播放 ASCII 版《星球大战》电影!(如果 telnet 不可用,可以试…...

ActiveMQ 与其他 MQ 的对比分析:Kafka/RocketMQ 的选型参考(二)

ActiveMQ、Kafka 和 RocketMQ 详细对比 性能对比 在性能方面,Kafka 和 RocketMQ 通常在高吞吐量场景下表现出色,而 ActiveMQ 则相对较弱。根据相关测试数据表明,Kafka 在处理大规模日志数据时,单机吞吐量可以达到每秒数十万条甚…...

HTML学习笔记(7)

一、什么是jQuery jQuery 是一个 JavaScript 库。他实现了JavaScript的一些功能&#xff0c;并封装起来&#xff0c;对外提供接口。 例子实现一个点击消失的功能&#xff0c;用JavaScript实现 <!DOCTYPE html> <html lang"en"> <head><meta …...

Jenkis安装、配置及账号权限分配保姆级教程

Jenkis安装、配置及账号权限分配保姆级教程 安装Jenkins下载Jenkins启动Jenkins配置Jenkins入门Jenkins配置配置中文配置前端自动化任务流新建任务拉取代码打包上传云服务并运行配置后端自动化任务流新建任务拉取代码打包上传云服务并运行账号权限分配创建用户分配视图权限安装…...

面向对象编程(Object-Oriented Programming, OOP)是什么?

李升伟 编译 简介 如果你已经接触过软件开发领域的话&#xff0c;你肯定听说过"面向对象编程"&#xff08;Object-Oriented Programming, OOP&#xff09;这个术语。但你知道什么是OOP吗&#xff1f;为什么它如此重要&#xff1f;在这篇文章中我们将深入解析OOP的基…...

Hotspot分析(1):单细胞转录组识别信息基因(和基因模块)

这一期我们介绍一个常见的&#xff0c;高分文章引用很高的一个单细胞转录组分析工具Hotspot&#xff0c;它可针对单细胞转录组数据识别有意义基因或者基因module&#xff0c;类似于聚类模块。所谓的”informative "的基因是那些在给定度量中相邻的细胞之间以相似的方式表达…...

从图文到声纹:DeepSeek 多模态技术的深度解析与实战应用

目录 一、引言二、DeepSeek 技术基础2.1 架构与原理2.2 多模态能力概述 三、文本与图像关联应用3.1 图文跨模态对齐技术3.1.1 技术原理3.1.2 DeepSeek 的独特方法 3.2 图像生成与文本描述3.2.1 应用案例3.2.2 技术实现 3.3 多模态检索系统中的应用3.3.1 系统搭建流程3.3.2 实际…...

cuDNN 9.9.0 便捷安装-Windows

#工作记录 从 CUDA12.6.3 和 cuDNN9.6.0 版本起&#xff0c;开启了使用 exe 安装包直接进行安装升级的支持模式&#xff0c;彻底改变了以往那种繁琐的安装流程。 在这两个版本之前&#xff0c;开发者在安装 CUDA 和 cuDNN 时&#xff0c;不得不手动下载 cuDNN 压缩包&#xf…...

profile软件开发中的性能剖析与内存分析

在软件开发中&#xff0c;“Profile”&#xff08;性能剖析/性能分析&#xff09;指的是通过工具详细监控程序运行时的各种性能指标&#xff0c;帮助开发者定位代码中的效率瓶颈或资源问题。当有人建议你 “profile 一下内存问题” 时&#xff0c;本质上是让你用专业工具动态分…...

0.0973585?探究ts_rank的score为什么这么低

最近在使用postgres利用ts_rank进行排序找到最符合关键词要求得内容时发现: 即使是相似的内容,得分也是非常非常得低(其中一个case是0.0973585)。看起来很奇怪,非常不可行。于是我又做了一个简单测的测试: SELECT ts_rank(to_tsvector(english, skirt), to_tsquery(skirt)…...

架构思维:利用全量缓存架构构建毫秒级的读服务

文章目录 一、引言二、全量缓存架构概述三、基于 Binlog 的缓存同步方案1. Binlog 原理2. 同步中间件3. 架构整合核心收益 四、Binlog 全量缓存的优缺点与优化优点缺点与取舍优化策略 五、其他进阶优化点六、总结 一、引言 架构思维&#xff1a;使用简洁的架构实现高性能读服务…...

永磁同步电机控制算法--基于PI的位置伺服控制

一、原理介绍 永磁同步伺服系统是包含了电流环、速度环和位置环的三环控制系统。 伺服系统通过电流检测电路和光电编码器检测电动机三相绕组电流和转子位置θ&#xff0c;通过坐标变换&#xff0c;计算出转矩电流分量iq和励磁电流分量id。 位置信号指令与实际转子位置信号的差…...

P1603 斯诺登密码详解

这个题目&#xff0c;我详细讲题解的两种方法&#xff0c;洛谷里面的题解&#xff0c;我是觉得大部分的时候是差了点意思的&#xff0c;不是看不懂&#xff0c;就是新知识没人详细讲解&#xff0c;我也是经常破防 先看题目&#xff1a; 题目是什么意思&#xff1a; 1&#xf…...

计算方法实验六 数值积分

【实验性质】综合性实验。 【实验目的】理解插值型积分法&#xff1b;掌握复化积分法算法。 【实验内容】 1对 &#xff0c;用复化梯形积分和变步长梯形积分求值&#xff08;截断误差不超过&#xff09;。 【理论基础】 积分在工程中有重要的应用&#xff0c;数值积分…...

avx指令实现FFT

avx指令实现FFT 参考代码实现的难点补充的avx指令fft_avx256实现可继续优化的点 C语言实现FFT变换参考的代码是参考大模型生成的代码&#xff0c;很明显其使用的是位反转和蝶形变换的方法实现的FFT变换。但是大模型无法正确的生成用avx指令写的FFT变换的算法&#xff0c;所以这…...

Nginx 核心功能之正反代理

目录 一、Nginx 二、正向代理 三、反向代理 四、Nginx 缓存 1. 缓存功能的核心原理和缓存类型 2. 代理缓存功能设置 五、Nginx rewrite和正则 &#xff08;1&#xff09;Nginx 正则 &#xff08;2&#xff09;nginx location &#xff08;3&#xff09;Rewrite &…...

function包装器的意义

一&#xff1a;function包装器的概念 function包装器 也叫作适配器。C中的function本质是一个类模板&#xff0c;也是一个包装器。 二&#xff1a;需要function包装器的场景 那么我们来看看&#xff0c;我们为什么需要function呢&#xff1f; 一个需要包装器的场景&#xff1a…...

【ThinkBook 16+ 电脑重做系统type-c接口部分功能失效解决方案】

ThinkBook 16 电脑重做系统type-c接口部分功能失效解决方案 问题回顾&#xff1a;重做电脑后&#xff0c;type-c接口部分功能失效&#xff0c;充电正常&#xff0c;连接外置硬盘正常&#xff0c;无法连接外拓显示器&#xff0c;显示usbc无信号&#xff08;不同设备可能显示不同…...

【言语理解】中心理解题目之选项分析

front:中心理解题目之结构分析 4.1两出处六有误 两出处 背景、例子、分析论证中提炼的选项出处有误&#xff0c;一般不选但是和因此之前、不是而是 的不是部分、被指代部分提炼的选项出处有误&#xff0c;一般不选。 六有误 片面&#xff1a;原文并列谈论两方面&#xff0c;只…...

[原创](现代Delphi 12指南):[macOS 64bit App开发]: [1]如何加载动态链接库, 并无缝支持原生底层开发?

[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、…...

VTK入门指南

什么是VTK VTK (Visualization Toolkit) 是一个开源的、跨平台的计算机图形学、图像处理和可视化系统。它提供了丰富的算法和高级工具&#xff0c;用于3D计算机图形学、图像处理和可视化。 安装VTK Windows平台 下载预编译版本&#xff1a; 从VTK官网或GitHub发布页面下载 …...

开始一个vue项目-day2

这次新增的功能有&#xff1a; 1、使用cookie存储token 参考网站:https://vueuse.org/ 安装包&#xff1a; npm i vueuse/integrations npm i universal-cookie^7 2、cookie的设置读取和删除&#xff0c;代码&#xff1a;composables/auth.js import { useCookies } from …...

Baklib驱动企业知识管理AI升级

Baklib如何实现知识AI化 Baklib通过构建企业级知识中台的核心能力&#xff0c;将人工智能技术深度融入知识管理的全生命周期。其底层架构采用自然语言处理&#xff08;NLP&#xff09;与机器学习算法&#xff0c;实现对企业文档的智能分类与语义解析。例如&#xff0c;系统可自…...

Linux线程同步机制深度解析:信号量、互斥锁、条件变量与读写锁

Linux线程同步机制深度解析&#xff1a;信号量、互斥锁、条件变量与读写锁 一、线程同步基础 在多线程编程中&#xff0c;多个线程共享进程资源&#xff08;如全局变量、文件描述符&#xff09;时&#xff0c;若对共享资源的访问不加控制&#xff0c;会导致数据不一致或竞态条…...

js逆向绕过指纹识别

​​一、兼容性说明​​ 官方支持 curl_cffi 明确支持 Windows 平台&#xff0c;并提供了预编译的安装包。其核心功能&#xff08;如浏览器指纹模拟、HTTP/2 支持&#xff09;在 Windows 上与 Linux/macOS 表现一致。 版本要求 • Python 3.8 及以上版本&#xff08;推荐 Pyth…...

笔记整理六----OSPF协议

OSPF 动态路由的分类&#xff1a; 1.基于网络范围进行划分--将网络本身划分为一个个AS&#xff08;自治系统---方便管理和维护&#xff09; 内部网关协议---负责AS内部用户之间互相访问使用的协议 IGP--RIP EIGRP ISIS OSPF 外部网关协议--负责AS之间&#xff08;整个互联网&…...

USB Type-C是不是全方位优于其他USB接口?

首先&#xff0c;USB TypeC接口内部引脚呈中心对称分布&#xff0c;正插、反插都能用&#xff0c;所以可以肓插&#xff0c;使用起来非常方便顺手。 其次&#xff0c;USB TypeC接口体积很小&#xff0c;特别是很薄&#xff0c;几乎适用于所有设备。而USB TypeA就是因为不方便应…...

信息系统监理师第二版教材模拟题第一组(含解析)

信息系统监理基础 信息系统监理的核心目标是( ) A. 降低项目成本 B. 确保项目按合同要求完成 C. 提高开发人员技术水平 D. 缩短项目周期答案:B 解析:信息系统监理的核心目标是确保信息系统工程项目按照合同要求、技术标准和规范完成,保障项目质量、进度和投资控制。 下列哪…...

NPP库中libnppist模块介绍

1. libnppist 模块简介 libnppist 是 NPP 库中专注于 图像统计分析与直方图计算 的模块&#xff0c;提供 GPU 加速的统计操作&#xff0c;适用于计算机视觉和图像处理中的特征提取与分析。 核心功能包括&#xff1a; 直方图计算&#xff08;支持单通道/多通道&#xff09; 统…...

k230摄像头初始化配置函数解析

通过 csi id 和图像传感器类型构建 Sensor 对象。 在图像处理应用中&#xff0c;用户通常需要首先创建一个 Sensor 对象。CanMV K230 软件可以自动检测内置的图像传感器&#xff0c;无需用户手动指定具体型号&#xff0c;只需设置传感器的最大输出分辨率和帧率。有关支持的图像…...

Spring的循环依赖问题

文章目录 一、什么是循环依赖&#xff1f;二、Spring 是如何解决循环依赖的&#xff1f;1.三级缓存2.解决循环依赖的流程 三、三级缓存机制可以解决所有的循环依赖问题吗&#xff1f;1. 为什么三级缓存在这里无效&#xff1f;2. 如何解决构造器循环依赖&#xff1f; 四、循环依…...

华为鸿蒙PC:开启国产操作系统自主化新纪元

——全栈自研、生态重构与未来挑战 2025年5月&#xff0c;一个值得中国科技界铭记的时间点。华为正式推出首款搭载鸿蒙操作系统&#xff08;HarmonyOS&#xff09;的PC产品。乍一听这像是又一款新电脑的发布&#xff0c;但它背后的意义远比表面更深远——这是中国首次推出从操…...

【LeetCode Hot100】动态规划篇

前言 本文用于整理LeetCode Hot100中题目解答&#xff0c;因题目比较简单且更多是为了面试快速写出正确思路&#xff0c;只做简单题意解读和一句话题解方便记忆。但代码会全部给出&#xff0c;方便大家整理代码思路。 70. 爬楼梯 一句话题意 每次爬1or2&#xff0c;问爬到n的路…...

【Java JUnit单元测试框架-60】深入理解JUnit:Java单元测试的艺术与实践

在当今快节奏的软件开发环境中&#xff0c;保证代码质量的同时又要快速交付成为了开发者面临的主要挑战。单元测试作为软件测试金字塔的基石&#xff0c;为我们提供了一种高效的解决方案。而在Java生态系统中&#xff0c;JUnit无疑是单元测试框架的代名词。本文将全面探讨JUnit…...

Java运算符学习笔记

运算符 -运算符介绍 ​ 运算符是一种特殊的符号&#xff0c;用以表示数据的运算、赋值和比较等。 算数运算符赋值运算符关系运算符[比较运算符]逻辑运算符位运算符[需要二进制基础]三元运算符 -算数运算符 介绍 算数运算符是对数值类型的变量进行运算的&#xff0c;在Java程…...

shell编程补充内容(Linux课程实验3)

一、求前五个偶数的和 1.这里先介绍要用到的expr 1. 整数计算 # 加法&#xff08;注意运算符两侧空格&#xff09; $ expr 10 20 30# 带括号的运算&#xff08;需要转义&#xff09; $ expr \( 10 20 \) \* 2 60# 取模运算 $ expr 15 % 4 注意&#xff1a;仅支持整数&…...

iview table组件 自定义表头

在实际项目开发中&#xff0c;我们经常会用到各种各样的表格&#xff0c;比如在表格表头中填加按钮&#xff0c;下拉菜单&#xff0c;图标等等&#xff0c;在网上搜了一段时间发现比较少&#xff0c;所以写好之后就想着分享出来给有需要的人参考参考&#xff0c;例如下面这种表…...

二叉搜索树实现删除功能 Java

在开始编写删除功能之前&#xff0c;先要编写好searchParent()(寻找父节点)和min()(查找树中最小值)两个函数&#xff0c;后期会在删除功能中使用到。 searchParent()的编写 /*** * param value* return Node*/public Node searchParent(int value){if(rootnull) return null;…...

Android Framework学习三:zygote剖析

文章目录 Zygote工作内容起始点初始化步骤启动 ZygoteInitZygoteInit.main () 函数内部操作 Zygote如何启动SystemServer参与的类和文件流程步骤进程创建完成后的处理 Framework学习之系列文章 在 Android 系统中&#xff0c;Zygote 是一个非常关键的进程&#xff0c;有 “App …...

LLM-Based Agent及其框架学习的学习(三)

文章目录 摘要Abstract1. 引言2. 推理与规划2.1 推理2.2 规划2.2.1 计划指定2.2.2 计划反思 3. 迁移与泛化3.1 未知任务的泛化3.2 情景学习3.3 持续学习 4. 学习Crewai和LangGraph4.1 Crewai4.2 LangGraph 参考总结 摘要 本文系统阐述了基于大语言模型的智能体在认知架构中的核…...