大家好 情况是这样的,我有一个A.py的脚本,里边打印以下代码是true:
print(1, torch.cuda.is_available(), torch.__version__)
然后在A.py 里执行命令 os.system('python B.py')
然而在B.py import torch 后 依然打印这句话,但返回确实false:
print(1, torch.cuda.is_available(), torch.__version__),在这个过程中,没有执行过任何程序。然后有个警告:UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 101: invalid device ordinal (Triggered internally at ../c10/cuda/CUDAFunctions.cpp:108.)
请问什么原因,该如何解决。 版本是:2.4.0+cu121 系统是ubuntu24.04
不知道什么原因,从网上没有找到方案
这个问题通常是由于CUDA环境配置不当或者多个CUDA环境冲突导致的。在描述的情况下,A.py能够正常访问GPU,但B.py在由A.py通过os.system
调用时无法访问,并提示了一个CUDA相关的错误。
以下是一些可能的解决方案:
CUDA_VISIBLE_DEVICES
、PATH
和LD_LIBRARY_PATH
)在A.py和B.py中都是一致的。特别是CUDA_VISIBLE_DEVICES
,它可能限制了CUDA设备的使用。os.system
:os.system
会启动一个新的shell环境,这可能会导致环境变量的不一致。如果可能,尝试使用Python的subprocess
模块来启动B.py,这样你可以更好地控制环境变量。nvidia-smi
命令来检查GPU的状态。可能有其他进程正在使用GPU,导致B.py无法访问。如果以上解决方案都不能解决问题,你可能需要更深入地检查你的系统配置和PyTorch/CUDA的安装。在某些情况下,重新安装PyTorch或更新CUDA驱动可能会解决问题。
这是使用两个不同文本查找元素的正确方法吗?因为该元素在两个不同的环境中有两个不同的文本。 .find()。withText()
译者:keyianpai 创建 Torch 脚本代码 将追踪和脚本化结合起来 Torch 脚本语言参考 类型 表达式 语句 变量解析 python值的使用 调试 内置函数 Torch脚本是一种从PyTorch代码创建可序列化和可优化模型的方法。用Torch脚本编写的代码可以从Python进程中保存,并在没有Python依赖的进程中加载。 我们提供了一些工具帮助我们将模型从纯Python程序逐步转换
变量 self.project_name self.project 有关当前项目的信息 self.response self.task 关于脚本 名称Handler并不重要,但您至少需要继承一个类BaseHandler 可以设置第三个参数来获取任务对象: def callback(self, response, task) 默认情况下,非200响应不会提交回调。使用@catch_status_co
我面临以下异常:中,当我试图显示一个时,该表单包含以前初始化(并显示)的 谢谢
问题内容: 为什么以下语句返回? 我也尝试过在字符串周围使用单引号。我唯一可以评估的方法是使用运算符,而不是 我的猜测是PHP将它视为某种方程式,但似乎有些奇怪。 有人可以详细说明吗? 问题答案: 是float数字格式,因此它们在比较时将转换为数字。 并且都将是因为它们太小。 对于在php中, 如果将数字与字符串进行比较,或者比较涉及 数字字符串 ,则每个字符串将转换为 数字 ,然后以数字方式进行
本文向大家介绍ubuntu环境下python虚拟环境的安装过程,包括了ubuntu环境下python虚拟环境的安装过程的使用技巧和注意事项,需要的朋友参考一下 一. 虚拟环境搭建 在开发中安装模块的方法: pip install 模块名称 之前我们安装模块都是直接在物理环境下安装,这种安装方法,后面一次安装的会覆盖掉前面一次安装的。那如果一台机器上面开发多个项目使用到不同版本的模块呢?怎么样做才能