通过WSL2来实现Windows10/11的深度学习模型GPU加速,TensorFlow项,Jupyter及其插件安装,CQF心得,金融量化

news2024/9/27 23:25:08

通过WSL2来实现TF的GPU加速

  • 为什么要用WSL(Windows Subsystem Linux)
  • 安装WSL2,miniconda,cuda,cudnn,TA-Lib
    • 安装 WSL2
    • 安装 Miniconda3
    • 安装 CUDA
    • 安装 cuDNN
    • 安装 TensorFlow 库
    • 安装 TA-Lib 库
    • 安装其它CQF及金融量化相关的库
  • 希望这篇博客对您有所帮助

为什么要用WSL(Windows Subsystem Linux)

主要是Windows开窍了,觉得让DEVs的门槛稍微降低,让普通人也有机会接触到开发和应用这一块。抛去这些7788的冠冕堂皇,来个实在些的就是TensorFlow已经在2.10版之后不再支持Windows平台的GPU加速技术了,就问你闹心不?就问你恶心不?!像我这种傻不啦叽的直接在Windows上用TensorFlow 2.15版写代码的,然后再反向寻找GPU加速,这简直就是灾难,我来罗列一下:

  • TF 2.15版写出来的代码是修复了很多Bugs的,相对来讲已经比较能稳定的运行市场上目前很多的模型架构,譬如CNN RNN LSTM及其相关的衍生出来的算法模型。但是2.0 ~ 2.12版的TF可以说是灾难性的,因为我们学习的代码基本上都是CuttingEdge的,TF也得一直更新跟进,顺手消灭一些Bugs的存在。当然了,大家再一年后看我这篇帖子,也会觉得2.15可能也是Bug重重的。
  • TF 2.15的确修复了很多Bugs,代码运行方面也比 2.10 GPU版成熟了很多,毕竟经历了5代大更新;但是懂python的人都懂,不同python库版本写出来的代码有很大的可能性是不能通用的,In my case scenario,是的,你丫就是不能用2.15写的代码在2.10上运行,气你肝儿疼。
  • 那么我们真的就不能在Windows上实现GPU加速了么?答案是否定的。我们可以通过WSL来搭建一个虚拟Linux平台,然后通过我们的IDE(Pycharm Jupyter VScode 等)把WSL的interpreter(解析器)从次平台导入到Windows主平台里进行使用。

安装WSL2,miniconda,cuda,cudnn,TA-Lib

安装 WSL2

  1. 我的Windows10是22H2版本的,超过这个版本应该都适用。据官方给出来的答案是从1903版开始可以正常安装使用WSL2, 请提前做好功课;
  2. 通过cmd或者powershell的管理员模式来进行安装wsl2,现在默认的版本是ubuntu2204LTS版;
  3. wsl --install -d ubuntu
  4. 安装好之后可以设置以什么身份来登录WSL2,建议用root来登录,省去很多麻烦;
  5. wsl --shutdown
  6. ubuntu.exe --default-user root
  7. 如果你想切换回用户模式,可以用下面的命令在cmd或者powershell的管理员模式来进设置;
  8. wsl --shutdown
  9. ubuntu.exe --default-user -u <你的用户名>
  10. 然后在cmd或者powershell的管理员模式来进入到WSL2里
  11. wsl
  12. WSL2
  13. 如果你想进入到你的用户模式的文件夹,输入以下:
  14. cd /home/<你的用户名>User模式
  15. 参考文献如下:
    • TensorFlow GPU不可用,WSL2安装
    • WSL Ubuntu22.04默认用户(default用户)更改
    • 在WSL2 root 和普通用户的切换

安装 Miniconda3

建议大家安装的时候在/home/<你的用户名>下面操作,以后装啥都在这里操作,以免遇到问题或者找不到文件啥的。

  1. 下载最新版的Linux版本miniconda3到文件夹内;

  2. wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

  3. 给予权限;

  4. chmod 777 Miniconda3-latest-Linux-x86_64.sh

  5. 开始安装miniconda3;

  6. bash Miniconda3-latest-Linux-x86_64.sh

  7. 如果出现conda不能使用的问题,请参阅文献,vim保存的时候先点击esc,然后输入:wq!

  8. 创建一个你的Python运行环境;

  9. conda create -n <你想起的环境名> python==<你想安装的python版本>

  10. 我的环境是3.10.13py3.10的最后的稳定版 ;

  11. 一定要先去查看你运行的TensorFlow或者PyTorch兼容哪个Python版本;

  12. 不建议选择bugfix版本的python,最新的不一定是最好的;

  13. 激活你的环境;

  14. source activate <你的环境名>
    激活python运行环境

  15. 参考文献如下:

    • windows系统下装载wsl2,安装Miniconda3或Anaconda进行生信准备工作
      使用稳定版Python

安装 CUDA

  1. 链接:CUDA的最新版首页
  2. 按照网站给出的安装指示进行安排即可,没有什么特别麻烦的步骤,就是复制粘贴,一行一行来;
  3. 记得你应该还在 /home/<你的用户名>这个目录下,如果不是请cd到那里cd /home/<你的用户名>
  4. 你的python环境也是应该被激活的,看看wsl命令行前面有没有(<你的环境名>)
    Latest CUDA
  5. wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
  6. sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
  7. wget https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda-repo-wsl-ubuntu-12-3-local_12.3.2-1_amd64.deb
  8. sudo dpkg -i cuda-repo-wsl-ubuntu-12-3-local_12.3.2-1_amd64.deb
  9. sudo cp /var/cuda-repo-wsl-ubuntu-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
  10. sudo apt-get update
  11. sudo apt-get -y install cuda-toolkit-12-3
  12. 注意看好了你装的是什么版本的。截止到2024年1月份,Linux版本的CUDA更新到12.3,如果你想安装12.3版本就按照我的来;如果你装的时候已经变成12.5或者13.x了,请自行复制粘贴官网的安装命令;
  13. 具体安装过程我就不贴出来了,参考文献里面博主写得很详细,耗时大约10分钟左右,看你的网速多快了。一共要下载3G多文件;
  14. 参考文献如下:
    • TensorFlow GPU不可用,WSL2安装

安装 cuDNN

  1. 记得你应该还在 /home/<你的用户名>这个目录下,如果不是请cd到那里cd /home/<你的用户名>
  2. 你的python环境也是应该被激活的,看看wsl命令行前面有没有(<你的环境名>)
  3. 现在我们试试nvidia-smi是否已经能看到你的nVidia的相关信息;
    nvidia-smi
  4. 重新安装一遍cudatoolkit;
  5. conda install -c conda-forge cudatoolkit=11.8.0
  6. 这里我装的cudnn是最新版的8.9.6.50,在Windows的时候我的LSTM代码只能用这个版本才能运行,不知道为什么;
    cuDNN==8.9.6.50
  7. pip install nvidia-cudnn-cu11==8.9.6.50 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
  8. 安装完成后配置环境
  9. CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))
  10. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib
  11. 自动配置
  12. mkdir -p $CONDA_PREFIX/etc/conda/activate.d
  13. echo 'CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
  14. echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
  15. 具体参考文献:
    • TensorFlow GPU不可用,WSL2安装

安装 TensorFlow 库

  1. 记得你应该还在 /home/<你的用户名>这个目录下,如果不是请cd到那里cd /home/<你的用户名>
  2. 你的python环境也是应该被激活的,看看wsl命令行前面有没有(<你的环境名>)
  3. 安装tensorflow其实挺straight forward的,因为我们已经把前面需要的dependencies都搞定了;
  4. pip install tensorflow==<你想装的版本> 我目前用的是的是==2.15.0版;
  5. 然后测试一下我们有没有设置成功;
  6. python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
    GPU加速成功
  7. [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]的字样已经体现,如果返回的结果只是[ ]空白的,说明未成功,可以回去排查一下哪里出现了问题,或者说安装的不够严谨。
  8. 关于Your kernel may have been built without NUMA support.的提示,可以忽略,StackOverflow上有人问过这个问题,已解决。
  9. 参考文献:
    • TensorFlow GPU不可用,WSL2安装
    • Your kernel may have been built without NUMA support.。

安装 TA-Lib 库

TA-Lib库是数据技术分析的主要运行库之一,非常好用,但是吧,它是C语言编译的,没有办法普通pip install来安装。

  1. 记得你应该还在 /home/<你的用户名>这个目录下,如果不是请cd到那里cd /home/<你的用户名>
  2. 你的python环境也是应该被激活的,看看wsl命令行前面有没有(<你的环境名>)
  3. 准备工作
  4. sudo apt-get install aptitude
  5. sudo apt install build-essential
  6. sudo apt install python3-dev
  7. sudo apt install automake
  8. sudo apt install libtool
  9. 安装TA-Lib
  10. git clone https://github.com/TA-Lib/ta-lib.git
  11. cd ta-lib
  12. sudo chmod u+x autogen.sh
  13. ./autogen.sh
  14. ./configure --prefix=/usr
  15. make
  16. sudo make install
  17. pip install TA-Lib
  18. 参考文献:
    • Win11+WSL2+Ubuntu22.04LTS+TA-Lib

安装其它CQF及金融量化相关的库

这个安装列表是我自己整理出来的,有一定的个人偏好,可以自行修改增减。

  1. 你的python环境也是应该被激活的,看看wsl命令行前面有没有(<你的环境名>)
  2. pip install akshare backtrader tushare pywencai qstock py-vollib
  3. pip install scipy statsmodels tabulate taichi scikit-learn pymysql sqlalchemy
  4. pip install networkx pandas-ta cufflinks sympy plotly seaborn pyecharts pyfinance yfinance
  5. pip install lightgbm catboost xgboost shap boruta
  6. 安装Jupyter及其相关插件,
  7. 这里不要修改,目前notebook7版本与插件不兼容,
  8. 这个配搭是一套完美的配搭组合,
  9. pip install notebook==6.4.6 jupyter traitlets==5.9.0
  10. pip install jupyter_contrib_nbextensions
  11. jupyter contrib nbextension install --user
  12. pip install jupyter_nbextensions_configurator
  13. jupyter nbextensions_configurator enable --user
  14. jupyter notebook --generate-config

希望这篇博客对您有所帮助

Traning_Model

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL-----DML基础操作

DML语句 DML英文全称是Data Manipulation Language(数据操作语言)&#xff0c;用来对数据库中表的数据记录进行增删改操作。 ▶ 添加数据(INSERT) 【语法】 1. 给指定字段添加数据 INSERTO 表名 (字段名1&#xff0c;字段名2,...) VALUES (值1&#xff0c;值2,...); 2.给全…

获取真实 IP 地址(二):绕过 CDN(附链接)

一、DNS历史解析记录 DNS 历史解析记录指的是一个域名在过去的某个时间点上的DNS解析信息记录。这些记录包含了该域名过去使用的IP地址、MX记录&#xff08;邮件服务器&#xff09;、CNAME记录&#xff08;别名记录&#xff09;等 DNS 信息。DNS 历史记录对于网络管理员、安全研…

跟着cherno手搓游戏引擎【19】抽象纹理

引入&#xff1a; 导入stb_image: GitHub - nothings/stb: stb single-file public domain libraries for C/C 下载复制stb_image.h的内容&#xff08;8000多行&#xff09;&#xff0c;然后粘到如图位置 stb_image.cpp: #include"ytpch.h" #define STB_IMAGE_IM…

LabVIEW叶片厚度远程监控

LabVIEW叶片厚度远程监控 随着网络技术的高速发展&#xff0c;远程监控广泛应用在各个领域。本文介绍了一种基于LabVIEW的植物叶片厚度远程监控系统&#xff0c;旨在实现对植物生长状况的精准监测和分析。 该系统利用LabVIEW软件开发工具&#xff0c;通过TCP网络协议实现数据…

抖音协议算法

以下是一些可能存在于社交媒体平台算法中的常见组成部分&#xff1a; 1. 用户兴趣模型&#xff1a;平台会根据用户的行为、喜好、关注的话题等信息&#xff0c;构建用户的兴趣模型。这可以通过分析用户的观看历史、点赞、评论、分享等行为来实现。 2. 内容特征提取&#xff1…

node.js基础--01

Author nodes&#xff1a;&#xff08;题记&#xff09; node.js is an open-source&#xff0c;cross-platform JAVAScript runtime environment。 node.js是一个开源&#xff0c;跨平台的js运行环境 common commands&#xff08;常用指令&#xff09; 1、C: enter hard …

C语言第十七弹---指针(一)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 指针 1、内存和地址 1.1、内存 2、指针变量和地址 2.1、取地址操作符&#xff08;&&#xff09; 2.2、指针变量和解引用操作符&#xff08;*&#xff09;…

短剧小程序开发:打造高效、便捷的娱乐体验

随着移动互联网的普及和用户需求的多样化&#xff0c;短剧小程序作为一种新型的应用形态&#xff0c;逐渐受到了广大用户的青睐。短剧小程序开发旨在为用户提供一种高效、便捷的娱乐体验&#xff0c;让用户在忙碌的生活中轻松享受到精彩的短剧内容。本文将探讨短剧小程序开发的…

基于ssm的运动会管理系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

Java玩转《啊哈算法》解密QQ号之队列

行有不得&#xff0c;反求诸己 文章目录 开头代码地址引子案例分析代码 队列封装升级演示 开头 各位好&#xff01;本人在看《啊哈算法》&#xff0c;写的确实不错。 但略微遗憾的是&#xff0c;书籍示例代码是c语言&#xff0c;不是本人常用的Java。 那就弥补遗憾&#xff…

Linux 系统开始配置

文章目录 备份源为root 设置密码安装基本工具切换root 用户删除snap从 Ubuntu 移除 Snap 后使用 deb 文件安装软件商店和 Firefox在 Ubuntu 系统恢复到 Snap 软件包总结 删除 vim安装neovim在线安装neovim压缩安装neovim安装lazyvim安装剪切板 安装qt配置 Qt 环境不在sudoers文…

Flutter 仿抖音 TikTok 上下滑动 播放视频

Flutter 仿抖音 TikTok 上下滑动 播放视频UI框架&#xff0c;视频播放使用 video_player github&#xff1a;GitHub - PangHaHa12138/TiktokVideo: Flutter 仿抖音 TikTok 上下滑动 播放视频UI框架 实现功能&#xff1a; 1.上下滑动自动播放切换视频&#xff0c;loading 封面…

帮管客CRM 文件上传漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

Linux实验记录:使用vsftpd服务传输文件

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注&#xff1a; 为了解决在多样复杂的设备之间解决传…

阿狸与小兔子的奇幻之旅

在很久很久以前&#xff0c;有一个遥远的国度&#xff0c;这个国度里生活着各种各样的动物&#xff0c;它们和谐共处&#xff0c;幸福快乐。在这个国度里&#xff0c;有一只聪明伶俐的小狐狸&#xff0c;名叫阿狸。 一天&#xff0c;阿狸在森林里散步时&#xff0c;遇到了一只正…

C++类和对象入门(二)

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、类的作用域 类定义了一个新的作用域&#xff0c;类的所有成员都在类的作用域中。在类体外定义成员时&#xff0c;需要…

亚马逊测评掉评、留不上评:问题根源与解决之道

亚马逊作为全球最大的电商平台之一&#xff0c;拥有数亿活跃用户和数百万卖家。在这个竞争激烈的市场中&#xff0c;产品评价对于卖家的成功至关重要。然而&#xff0c;许多卖家在尝试通过测评获取好评时&#xff0c;却遇到了掉评、留不上评的问题&#xff0c;这无疑增加了他们…

安装配置sqoop

一、了解Sqoop 1、Sqoop产生的原因 A. 多数使用hadoop技术的处理大数据业务的企业,有大量的数据存储在关系型数据中。 B. 由于没有工具支持,对hadoop和关系型数据库之间数据传输是一个很困难的事。 以上是sqoop产生的主要原因,也因此Sqoop主要用于hadoop与关系型数据库之…

如何在docker中访问电脑上的GPU?如何在docker中使用GPU进行模型训练或者加载调用?

如何在docker中访问电脑上的GPU&#xff1f;如何在docker中使用GPU进行模型训练或者加载调用&#xff1f; 其实使用非常简单&#xff0c;只是一行命令的事&#xff0c;最主要的事配置好驱动和权限。 docker run -it --rm --gpus all ycj520/centos:1.0.0 nvidia-smi先看看 st…

【Spring实战】33 Spring Boot3 集成 Nacos 配置中心

文章目录 1. 配置中心定义2. 解决哪些问题3. 常用的配置中心4. 使用示例1&#xff09;没引入 Nacos 配置中心2&#xff09;引入依赖3&#xff09;配置Nacos连接信息4&#xff09;在 Nacos 上配置属性5&#xff09;在 Spring Boot 中使用配置6&#xff09;启动服务&验证7&am…