WSL Ubuntu安装TensorFlow-GPU、PyTorch-GPU

在Windows 11的WSL Ubuntu中安装TensorFlow-GPU、PyTorch-GPU


0、WSL Ubuntu安装

  • 在Windows 11的商店中下载即可,此处以Ubuntu22.04.3为例

1、CUDA Toolkit安装

  • 参考公孙启的文章Windows11 + WSL Ubuntu + Pycharm + Conda for deeplearning
  • 前往nVidia官网下载CUDA Toolkit,这里以11.8为例,因为PyTorch目前支持11.8和12.1两个版本的CUDA
  • 下载时注意选择WSL-Ubuntu,根据网页下方提供的命令依次输入即可完成安装在这里插入图片描述
  • 配置环境变量
    • sudo vi ~/.bashrc
    • 添加以下内容,
      export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}
      export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
      
    • 更新环境变量,source ~/.bashrc
  • 测试,输入nvcc -V,输出如下内容
    在这里插入图片描述

2、cuDNN安装

  • 前往nVidia官网下载cuDNN,下载时注意选择版本,这里以11.X为例
    在这里插入图片描述
  • 下载到Windows系统上后,将文件复制到WSL的Ubuntu系统中,注意,在WSL中,Windows系统的路径变为/mnt/c/Users/zhangsan/Desktop/xxxxx
  • 解压文件,将include、lib文件夹下的文件复制到/usr/local/cuda-11文件夹下
    # 复制     
    sudo cp -r lib/* /usr/local/cuda-11/lib64/
    sudo cp -r include/* /usr/local/cuda-11/include/
    
    # 修改权限
    sudo chmod a+r /usr/local/cuda-11/include/cudnn*
    sudo chmod a+r /usr/local/cuda-11/lib64/libcudnn*
    
  • 测试,输入 cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2,结果如下:
    在这里插入图片描述

3、Anaconda安装及清华镜像配置

  • 略,参考CSDN文章ubuntu Anaconda的安装、镜像源更改和python虚拟环境的配置细节

4、TensorFlow-GPU安装

  • 经过测试,python版本指定为3.9,使用conda install tensorflow-gpu,即可自动安装,具体可参考CSDN文章【Tensorflow2.x】tensorflow-gpu 在 Ubuntu 上的安装
  • 测试是否可以调用GPU: tf.test.is_gpu_available(),输出True,即证明安装成功
  • 注意:建议不要使用tensorflow官方提供的pip命令进行安装(暂未使用该方法安装成功)
  • 代码中输入以下内容,可简单启用GPU
    import os
    os.environ["CUDA_VISIBLE_DEVICES"] = "0"
    

5、PyTorch-GPU安装

  • 前往PyTorch官网,选择需要的环境,复制conda命令,执行
    在这里插入图片描述

  • 测试GPU是否可用:torch.cuda.is_available(),输出True,即证明安装成功

6、VSCode连接WSL

  • 在插件商店中下载WSL插件,安装后点击左下角即可
    在这里插入图片描述

参考资料:

  • Windows11 + WSL Ubuntu + Pycharm + Conda for deeplearning
  • ubuntu Anaconda的安装、镜像源更改和python虚拟环境的配置细节
  • 【Tensorflow2.x】tensorflow-gpu 在 Ubuntu 上的安装
  • 清华大学开源软件镜像站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/712784.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

transformer模型首次体验代码

前言 首先是安装python,更新pip源到清华源。安装transformer pip install transformer安装jupyter lab,也简单一行 pip install jupyterlab现在不想用anaconda了,因为国内没有源了,国外的又慢。直接用pip吧。 然后开始体验之旅…

DeepDriving | CUDA编程-05:流和事件

本文来源公众号“DeepDriving”,仅用于学术分享,侵权删,干货满满。 原文链接:CUDA编程-05:流和事件 1 CUDA流 在CUDA中有两个级别的并发:内核级并发和网格级并发。前面的文章DeepDriving | CUDA编程-04&…

buildroot编译出错you should not run configure as root

虚拟机版本:ubuntu-22.04.4 问题 buildroot在图形配置后,执行 sudo make开始编译出现以下错误configure: error: you should not run configure as root (set FOenvironment to bypass this check) 在网上看到说在/etc/profile文件中添加以下内容 exp…

Ngunx + Tomcat 负载均衡和动态分离

目录 一、tomcat简介 二、Nginx 负载均衡 1. Nginx 应用 2. Nginx 负载均衡实现原理 2.1 正向代理 2.2 反向代理 2.3 具体过程接收请求:Nginx作为反向代理服务器,接收客户端的请求。选择后端服务器:根据预先配置的负载均衡算法&#xf…

23种设计模式之享元模式

享元模式 1、定义 享元模式:运用共享技术有效的支持大量细粒度对象的复用 2、享元模式结构 Flyweight(抽象享元类):通常是一个接口或抽象类,在抽象享元类中声明了具体享元类公共的方法,这些方法可以向外…

从多线程设计模式到对 CompletableFuture 的应用

大家好,我是 方圆。最近在开发 延保服务 频道页时,为了提高查询效率,使用到了多线程技术。为了对多线程方案设计有更加充分的了解,在业余时间读完了《图解 Java 多线程设计模式》这本书,觉得收获良多。本篇文章将介绍其…

几种经典查找算法

几种经典查找算法 顺序查找法二分查找法判定树 二叉查找树(BST)索引查找B-树B树散列表(hash)查找 顺序查找法 顺序查找的平均查找长度为: 时间复杂度为0(n); 二分查找法 int bin…

CNN学习(7):用C++实现简单不同参数的卷积模型

目录 一、参数说明和计算公式 1、符号约定 2、输出大小计算公式 二、不同类型的卷积 1、输入3*3*1,卷积核3*3*1,输出1*1*1 (1)实现代码 (2)代码说明 2、输入4*4*1,卷积核3*3*1&#xff…

环保评A的意义与价值

环保评A,这个看似简单的称谓,背后却蕴藏着深厚的环保理念和实践标准。在当今社会,环保已经成为一项全球性的议题,各国都在努力推动绿色发展,实现可持续发展目标。那么,环保评A究竟是全国性的认证还是地方性…

Java SSTI服务端模版注入漏洞原理与利用

文章目录 前言Velocity基础语法基础示例命令执行 靶场实践漏洞代码漏洞验证检测工具 FreeMarker基础示例漏洞示例CMS案例 Thymeleaf基础示例漏洞示例安全方案 总结 前言 SSTI(Server Side Template Injection)全称服务端模板注入漏洞,在 Jav…

开放式耳机值得入手买吗?可以对比这几款开放式耳机看看

居家办公时,选择一款合适的耳机能够有效地提高工作效率。入耳式耳机虽然能够有效地隔绝外界噪音,但长时间佩戴会对耳朵造成负担,甚至引发耳道感染。而头戴式耳机虽然能够提供更好的音质,但体积较大,佩戴起来不够灵活。…

PyTorch -- Batch Normalization(BN) 快速实践

Batch Normalization 可以 改善梯度消失/爆炸问题:前面层的梯度经过多次传递后会变得非常小(大),从而导致网络收敛速度慢(不收敛),应用 BN 可缓解加速网络收敛:BN 使得每个神经元的输入分布更加稳定减少过拟合:BN 可减…

求导,积分

求导公式: 复合函数求导法则:两个函数导函数的乘积. 例如:f(x)2x1,f(x)2,g(x)x^24x4,g(x)2x4 那么复合函数: g(f(x))(2x1)^24(2x1)4 把(2x1)看做整体,则g2(2x1)4 然后再求(2x1)的导函…

LeetCode | 2879.显示前三行

在 pandas 中,可以使用 head() 方法来读取 DataFrame 的前几行数据。如果想读取指定数量的行,可以在 head() 方法中传入一个参数 n,读取前 n 行 import pandas as pddef selectFirstRows(employees: pd.DataFrame) -> pd.DataFrame:retur…

Dictionary 字典

文章目录 一、什么是字典1.1 字典的创建方式 一、什么是字典 字典: 用来存储数据,与列表和元组不一样的是,字典以键值对的形式对数据进行存储,也就是 key 和 value。相当于 Java 中的 Map。 注意: 1、 key 的值不可重…

C++进阶(一)

个人主页:PingdiGuo_guo 收录专栏:C干货专栏 前言 本篇博客是讲解函数的重载以及引用的知识点的。 文章目录 前言 1.函数重载 1.1何为函数重载 1.2函数重载的作用 1.3函数重载的实现 2.引用 2.1何为引用 2.2定义引用 2.3引用特性 2.4常引用 2…

认识一些分布函数-Frechet分布及其应用

1. 何为Frechet分布 Frechet分布也称为极值分布(EVD)类型II,用于对数据集中的最大值进行建模。它是四种常用极值分布之一。另外三种是古贝尔分布、威布尔分布和广义极值分布(Gumbel Distribution, the Weibull Distribution and the Generalized Extreme Value Distributi…

34 Debian如何配置ELK群集

作者:网络傅老师 特别提示:未经作者允许,不得转载任何内容。违者必究! Debian如何配置ELK群集 《傅老师Debian知识库系列之34》——原创 ==前言== 傅老师Debian知识库特点: 1、拆解Debian实用技能; 2、所有操作在VMware虚拟机实测完成; 3、致力于最终形成Debian知识手…

LVS-DR模式详解:提升网站性能的最佳解决方案

LVS-DR模式原理 用户请求到达Director Server: 用户请求到达Director Server(负载均衡服务器),数据包首先到达内核空间的PREROUTING链。数据包源IP:CIP,目标IP:VIP,源MAC&#xff1a…

【内存管理之C语言数组】

1.栈空间上的C数组 糟糕的可用性,但是你将在遗留代码中见到它们 相同类型的对象的内存块 大小必须是常量表达式 第一个元素索引为0 2.指针和C数组 更奇怪的是:数组标识符退化为指向第一个元素的指针 3.访问数组 4.堆空间上的C数组 相同类型的对象的内…