通过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

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

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

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

相关文章

立式台灯什么牌子好用又实惠?好用又实惠的台灯分享

近年来&#xff0c;随着电子产品越来越普及&#xff0c;社会的发展和生活方式的转变&#xff0c;视力不良和近视问题越发严重&#xff0c;全国学生体质与健康调研数据显示&#xff0c;从1985年起中国中小学生视力不良率持续上升&#xff0c;到2019年时&#xff0c;视力不良率已…

STM32——感应开关盖垃圾桶

STM32——感应开关盖垃圾桶 1.定时器介绍 软件定时 缺点&#xff1a;不精确、占用CPU资源 void Delay500ms() //11.0592MHz {unsigned char i, j, k;_nop_();i 4;j 129;k 119;do{do{while (--k);} while (--j);} while (--i); }定时器工作原理 使用精准的时基&#xff…

Orion-14B-Chat-Plugin [model server error]解决方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

MIT 6.5830 概述

简介 同MIT6.824系列类似&#xff0c;6.4830是关于Database System的一门课程&#xff0c;官方主页链接。 从课程信息可知&#xff0c;理论课分为 21 个课时&#xff0c;3个问题集&#xff0c;4个实验&#xff0c;1个项目。课程的 ppt 可以下载&#xff0c;对应的课堂回放可以…

【Delphi】IDE 工具栏错乱恢复

由于经常会在4K和2K显示器上切换Delphi开发环境(IDE)&#xff0c;导致IDE工具栏错乱&#xff0c;咋样设置都无法恢复&#xff0c;后来看到红鱼儿的博客&#xff0c;说是通过操作注册表的方法&#xff0c;能解决&#xff0c;试了一下&#xff0c;果真好用&#xff0c;非常感谢分…

WPF 提示无法启动PackIcon,因为已经启用仅平台控件选项

vs打开wpf项目的页面文件&#xff0c;提示如下&#xff1a; 点击此处重新加载设计器&#xff0c;页面无反应&#xff1b; 点击仅显示控制平台控件及重新加载时&#xff0c;页面可以显示&#xff0c;但是PackIocn不能显示&#xff0c;如下图&#xff1a; 切换后&#xff0c;如…

LVS常用的NAT模式和DR模式实战示例

引言&#xff1a;紧接上文&#xff0c;了解LVS&#xff0c;这一篇就够了-CSDN博客&#xff0c;今天我们对LVS常用的两种模式来进行示例配置演示 LVS-NAT模式 1、环境准备 准备 3 台纯净的虚拟机 关闭防火墙和selinux 例&#xff1a; lvs-server 添加两个网卡 NAT模式 …

Spring | Spring的“数据库开发“ (Srping JDBC)

目录&#xff1a; Spring JDBC1.Spring JDBC的核心类 ( JdbcTemplate类 )2.Srping JDBC 的配置3.JdbcTemplate类的“常用方法”execute( )&#xff1a;直接执行“sql语句”&#xff0c;没有返回值update( ) &#xff1a;“增删改”&#xff0c;返回 “影响的行数”query( ) : “…

C# OpenCvSharp DNN Gaze Estimation 视线估计

目录 介绍 效果 模型信息 项目 代码 frmMain.cs GazeEstimation.cs 下载 C# OpenCvSharp DNN Gaze Estimation 介绍 训练源码地址&#xff1a;https://github.com/deepinsight/insightface/tree/master/reconstruction/gaze 效果 模型信息 Inputs ----------------…

【Java程序设计】【C00214】基于SSM的社区物资购买系统(论文+PPT)

基于SSM的社区物资购买系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这个一个基于SSM的社区物资购物管理系统&#xff0c;本系统共分为二种权限&#xff1a;管理员、用户 管理员&#xff1a;首页、个人中心、用户管理、商品分类管…

1178:单词数

题目描述 统计一篇文章里不同单词的总数。 输入 有多组数据&#xff0c;每组一行&#xff0c;每组就是一篇小文章。每篇小文章都是由大小写字母和空格组成&#xff0c;没有标点符号&#xff0c;遇到#时表示输入结束。每篇文章的单词数小于1000&#xff0c;每个单词最多由30个…

serial库对串口的基本使用

serial库对串口的基本使用 serial库用于串口通信。它提供了一组函数和类&#xff0c;用于在计算机和外部设备之间进行串口通信。通过使用serial库可以读取和写入串口数据&#xff0c;以实现与各种外部设备的通信&#xff0c;如传感器、微控制器、嵌入式系统等。 支持多平台&a…

Linux浅学笔记03

目录 有关root的命令 用户和用户组 用户组管理&#xff1a;&#xff08;以下需要root用户执行&#xff09; 创建用户组: 删除用户组&#xff1a; 用户管理&#xff1a;&#xff08;以下需要root用户执行&#xff09; 创建用户&#xff1a; 删除用户&#xff1a; 查看用…

DataTable.Load(reader)注意事项

对于在C#中操作数据库查询&#xff0c;这样的代码很常见&#xff1a; using var cmd ExecuteCommand(sql); using var reader cmd.ExecuteReader(); DataTable dt new DataTable(); dt.Load(reader); ...一般的查询是没问题的&#xff0c;但是如果涉及主键列的查询&#xf…

宠物空气净化器有改善空气质量吗?猫用空气净化器哪些品牌好?

大家都知道&#xff0c;在宠物换毛季节&#xff0c;宠物的掉毛非常严重&#xff0c;几乎遍布整个家里。这给家中的小孩和老人带来了很多困扰&#xff0c;可能导致他们流鼻涕、过敏等问题。此外&#xff0c;猫咪有时候会随地拉撒&#xff0c;那个味道真的很难闻。家里的其他人对…

妈妈,我的压岁钱呢?

这是老郭的第30篇原创文章 春节的脚步越来越近&#xff0c;又到了孩子们欢天喜地收压岁钱的时刻。但是&#xff0c;如何让这笔“意外之财”变成孩子们的“大财富”呢&#xff1f; 孩子的想法 哈哈&#xff0c;终于拿到了压岁钱&#xff01; 我要买那个新出的游戏、那个最酷的玩…

wordcloud库和jieba库的使用

文章目录 wordcloud库的简单示范使用wordcloud库报错记录anaconda安装第三方jieba库jieba库的简单示范任务 1&#xff1a;三国演义中的常见词汇分布在“三国"这两个隶书字上&#xff0c;出现频率高的词字体大任务 2&#xff1a;三国演义中出现频率前十的人名。必须是以下这…

如何快速记忆小鹤双拼键位图?

记忆方法&#xff1a;韵母表 图形 最常用字 韵母表&#xff1a;双拼的基础 图形&#xff1a;帮助新手快速联想回忆 最常用字&#xff1a;快速打字基础 一、单韵母&#xff08;紫色方块&#xff09; 一一对应如下表&#xff1a; 单韵母aoeiu、AOEIV 二、复韵母—箭矢型&am…

【前沿】超透镜阵列可实现下一代真3D近眼显示器

由于体积小、全视差、全彩显示方便&#xff0c;更重要的是&#xff0c;通过消除会聚-调节冲突 &#xff08;VAC&#xff09; 实现真正的 3D 和更逼真的深度感知&#xff0c;所以集成成像显示器成为最有前途的近眼显示器 &#xff08;NED&#xff09; 之一。然而&#xff0c;基于…

操作系统--进程、线程基础知识

一、进程 我们编写的代码只是一个存储在硬盘的静态文件&#xff0c;通过编译后就会生成二进制可执行文件&#xff0c;当我们运行这个可执行文件后&#xff0c;它会被装载到内存中&#xff0c;接着 CPU 会执行程序中的每一条指令&#xff0c;那么这个运行中的程序&#xff0c;就…