6、TORCH.BACKENDS

torch.backends 控制 PyTorch 支持的各种后端的行为。

这些后端包括:

  • torch.backends.cuda

  • torch.backends.cudnn

  • torch.backends.mkl

  • torch.backends.mkldnn

  • torch.backends.openmp

torch.backends.cuda

torch.backends.cuda.is_built()

返回 PyTorch 是否使用 CUDA 支持构建。 请注意,这并不一定意味着 CUDA 可用; 只是如果这个 PyTorch 二进制文件在一台带有工作 CUDA 驱动程序和设备的机器上运行,我们将能够使用它。

torch.backends.cuda.matmul.allow_tf32

控制 TensorFloat-32 张量核心是否可用于 Ampere 或更新 GPU 上的矩阵乘法的布尔值。 请参阅安培设备上的 TensorFloat-32(TF32)。

torch.backends.cuda.cufft_plan_cache

cufft_plan_cache 缓存 cuFFT 计划

size

一个只读整数,显示当前在 cuFFT 计划缓存中的计划数。

max_size

控制 cuFFT 计划的缓存容量的 int。

clear()

Clears the cuFFT plan cache.

torch.backends.cudnn

torch.backends.cudnn.version()

返回 cuDNN 的版本

torch.backends.cudnn.is_available()

返回一个布尔值,指示 CUDNN 当前是否可用。

torch.backends.cudnn.enabled

控制是否启用 cuDNN 的布尔值。

torch.backends.cudnn.allow_tf32

控制 TensorFloat-32 张量核心在 Ampere 或更新 GPU 上的 cuDNN 卷积中可以使用的位置的布尔值。 请参阅安培设备上的 TensorFloat-32(TF32)。

torch.backends.cudnn.deterministic

一个布尔值,如果为 True,则导致 cuDNN 仅使用确定性卷积算法。另请参阅 torch.are_deterministic_algorithms_enabled() 和 torch.use_deterministic_algorithms()。

torch.backends.cudnn.benchmark

一个布尔值,如果为 True,则导致 cuDNN 对多个卷积算法进行基准测试并选择最快的。

torch.backends.mkl

torch.backends.mkl.is_available()

返回 PyTorch 是否使用 MKL 支持构建。

torch.backends.mkldnn

torch.backends.mkldnn.is_available()

返回 PyTorch 是否使用 MKL-DNN 支持构建。

torch.backends.openmp

torch.backends.openmp.is_available()

返回 PyTorch 是否使用 OpenMP 支持构建。

 

 

 

回答: 当使用torch.backends.cudnn时,有时会出现报错的情况。为了解决这个问题,你可以尝试以下几个解决方案。首先,你可以在你的train.py或者main.py开头加上一段代码来固定所有的随机种子,包括numpy、python和pytorch(cpu、gpu)。这样可以使用deterministic=True的代码来确保你得到相同的测试精度或误差,但会导致训练速度变慢。具体的代码如下所示:\[2\] ```python def seed_torch(seed: int = 42) -> None: random.seed(seed) os.environ\['PYTHONHASHSEED'\] = str(seed) # 为了禁止hash随机化,使得实验可复现 os.environ\["CUDA_LAUNCH_BLOCKING"\] = "1" os.environ\["CUBLAS_WORKSPACE_CONFIG"\] = ":16:8" np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) torch.backends.cudnn.benchmark = False torch.backends.cudnn.deterministic = True print(f"Random seed set as {seed}") seed_torch() ``` 另外,你也可以使用torch.use_deterministic_algorithms函数来检测是否使用了随机算法,并解决报错问题。具体的操作可以参考pytorch官方文档中关于pytorch non-deterministic操作的说明。\[3\] 希望以上解决方案能够帮助你解决torch.backends.cudnn报错的问题。如果问题仍然存在,请尝试其他方法或查阅更多相关资料。 #### 引用[.reference_title] - *1* *2* *3* [Pytorch 深度学习结果无法复现的解决办法](https://blog.csdn.net/weixin_45203752/article/details/126596853)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值