WSL2调用Windows中的GPU版Pytorch

在nvidia官网可以下载WSL2版本cuda,但最低cuda版本为11.3,而我的电脑最高支持的10.2版本的cuda驱动,因此即使安装了cuda也无法安装相应的驱动。

网上有很多使用镜像的教程,但都失败了,不想尝试了,都不知道怎么清理内存了,cuda文件都删除卸载了,还是少了10G内存。

wsl2命令行输入 echo $PATH 命令是可以看到很多windows系统路径,因此我们完全可以使用windows下gpu版本的pytoch。配置如下:

在命令行输入 code .即可安装vscode,其实就是调用windows下的vscode;

1. 创建python测试文件

import torch
print(torch.__version__)
print(torch.randn((1, 2, 3)))
print(torch.cuda.is_available())

2. 配置settings.json文件,如最后一行所示配置对应的python路径,就是选择windows上GPU版本的pytorch:

"code-runner.executorMap": {
        "javascript": "node",
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "objective-c": "cd $dir && gcc -framework Cocoa $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "php": "php",
        "python": "\"/mnt/d/working_soft/anaconda/envs/torch-gpu/python.exe\" -u",

3. vscode中测试

输出如下:

liu@DESKTOP-KEMM18T:~/code/python$ "/mnt/d/working_soft/anaconda/envs/torch-gpu/python.exe" -u "/home/liu/code/python/test.py"
1.9.0
tensor([[[-1.8506, -0.5163, -0.8731],  
         [-0.0243, -0.4349,  0.1623]]])
True
liu@DESKTOP-KEMM18T:~/code/python$ 

4. 关于import cv2报错的问题

此时import cv2 可以报如下错误,ImportError: DLL load failed: 找不到指定的模块。

原因分析,vscode使用powershell作为终端,与conda冲突,应修改为cmd终端,在设置中找到terminal.integrated.profiles.windows,并进入settings.josn文件,在对应位置输入下面的命令:

    "terminal.integrated.profiles.windows": {
        "my-cmd": {
          "path": "C:\\Windows\\System32\\cmd.exe",
          "args": []
        }
      },
      "terminal.integrated.defaultProfile.windows": "my-cmd"

如果还是报错,则在conda环境中更新Opencv: python -m pip install opencv-python

5. 总结

问题出在wsl2只支持高版本的cuda,而我的电脑不支持高版本的cuda,所以选择折衷的方式,如果电脑本身支持高版本的cuda完全可以直接在wsl2中安装cuda。

你可能感兴趣的:(Pytorch,linux,pytorch,深度学习,人工智能)