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

通过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.hqwc.cn/news/449124.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云a10GPU,centos7,cuda11.2环境配置

Anaconda3-2022.05-Linux-x86_64.sh gcc升级 centos7升级gcc至8.2_centos7 yum gcc8.2.0-CSDN博客 paddlepaddle python -m pip install paddlepaddle-gpu2.5.1.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html 报错 ImportError: libssl.so…

解锁影视制作新境界:DaVinci Resolve Studio 18引领行业变革

随着科技的不断发展&#xff0c;影视制作行业也在日新月异地变革。在这一进程中&#xff0c;DaVinci Resolve Studio 18以其卓越的性能和无限的创新力&#xff0c;成为了行业的领跑者。 DaVinci Resolve Studio 18是一款集剪辑、调色、音频处理和特效合成于一身的专业级影视制…

虚幻UE5Matehuman定制自己的虚拟人,从相机拍照到UE5制作全流程

开启自己的元宇宙,照片扫描真实的人类,生成虚拟形象,保姆级教程,欢迎大家指正。 需要的软件: 制作流程: 一.拍照。 围绕自己拍照,大概20多张图就差不多了,把脑门漏出来,无需拍后脑勺。 拍照方式 例如,拍照时尽量不要在脸上体现出明显的光源方向。

【Springcloud篇】学习笔记一(一至三章):微服务介绍、构建环境

零基础微服务架构理论入门介绍 一个基于分布式的服务架构应该含有的架构内容如下&#xff1a; 1.1SpringCloud是什么 1.2基于微服务的系统 1.3服务与之对用的技术 1.4课程目录 第一章_SpringBoot和SpringCloud版本选择 详细可见SpringCloud2020.mmap文件 1.概述 2.SpringBoo…

python 基础知识点(蓝桥杯python科目个人复习计划32)

今日复习内容&#xff1a;基础算法中的位运算 1.简介 位运算就是对二进制进行操作的运算方式&#xff0c;分为与运算&#xff0c;或运算&#xff0c;异或运算&#xff0c;取反&#xff0c;左移和右移。 &#xff08;1&#xff09;与运算 xyx&y000010100111 (2)或运算 …

用Python和 Cryptography库给你的文件加密解密

用Python和 Cryptography库给你的文件加密解密 用Python和 Cryptography库给你的文件加把安全锁。 先介绍与加密解密有关的几个基本概念。 加密&#xff08;Encryption&#xff09;&#xff1a;加密是将明文转换为密文的过程&#xff0c;使得未经授权的人无法读懂。 解密&a…

Sharding-JDBC之ComplexKeysShardingAlgorithm(复合分片算法)

目录 一、简介二、maven依赖三、数据库3.1、创建数据库3.2、创建表 四、配置&#xff08;二选一&#xff09;4.1、properties配置4.2、yml配置 五、复合分片算法六、实现6.1、实体层6.2、持久层6.3、服务层6.4、测试类6.4.2、根据时间范围查询订单 一、简介 实际工作中&#xf…

Flutter组件 StatefulWidget、StatelessWidget 可继承写法

前言 学过Java的同学&#xff0c;应该都知道面向对象语言的三大特征&#xff0c;封装、继承、多态&#xff1b; Dart也是面向对象的语言&#xff0c;但是在Flutter中的很多组件都被下划线 _ 标记为私有&#xff0c;导致无法继承&#xff0c;本文将介绍一种非私有的创建组件写…

Oracle 面试题 | 08.精选Oracle高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

正则表达式可视化工具regex-vis

什么是正则表达式 &#xff1f; 正则表达式是对字符串操作的一种逻辑公式&#xff0c;就是用事先定义好的一些特定字符、及这些特定字符的组合&#xff0c;组成一个“规则字符串”&#xff0c;这个“规则字符串”用来表达对字符串的一种过滤逻辑。【百度百科】 正则表达式用简短…

idea中找到所有的TODO

idea中找到所有的TODO &#xff08;1&#xff09;快捷键 Alt6 &#xff08;2&#xff09;View -> Tool Windows -> TODO

RabbitMQ之三种队列之间的区别及如何选型

目录 不同队列之间的区别 Classic经典队列 Quorum仲裁队列 Stream流式队列 如何使用不同类型的队列​ Quorum队列 Stream队列 不同队列之间的区别 Classic经典队列 这是RabbitMQ最为经典的队列类型。在单机环境中&#xff0c;拥有比较高的消息可靠性。 经典队列可以选…