Win10+RTX2080深度学习环境搭建:tensorflow、mxnet、pytorch、caffe

2023-11-12


GPU为 RTX2080,系统为更新到最新版本的 Win10

准备工作

  • 安装VS2015,到官网地址older-download下载安装
  • 安装Matlab,笔者安装的是Matlab2017b
  • 安装Anaconda3-4.4.0-Windows-x86_64.exe(到anaconda archive下载),笔者曾下载并安装了最新版的Anaconda3-2018.12-Windows-x86_64.exe,在使用conda安装包时发生SSLError错误,据github issue所说是最新版win10和最新版anaconda有冲突,4.4版本没有这个问题,4.4对应的python版本为3.6
  • 安装CUDA 10.0,到cuda-toolkit-archive根据自己的平台下载安装,安装好后可以看到环境变量多了CUDA_PATH、CUDA_PATH_10_0等,以及path中也多了bin和libnvvp路径
  • 安装CUDNN 7.4,到cudnn-archive根据CUDA版本下载安装,下载下来后将其中的所有文件(bin、include、lib文件夹)拷贝到cuda的目录,合并对应的文件夹

设置conda国内镜像源

为conda设置国内镜像源,默认国外的镜像源会比较慢。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes

这时目录"C:\Users\用户名"下的.condarc文件内容变为

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
show_channel_urls: true

如果有default可以删除。

conda 深度学习环境

# 创建conda环境
conda create -n py36DL python=3.6
# 更新pip
pip install --upgrade pip
# 若报错
easy_install pip
# 激活环境
activate py36DL
# 安装ipython,后面用于测试库是否安装成功
conda install ipython

tensorflow、mxnet、pytorch安装

注意:下面的所有安装都是在激活了的py36DL环境中进行的

tensorflow

笔者通过官网、通过conda、通过豆瓣镜像源安装tensorflow在import时都会失败,报“ImportError: DLL load failed: 找不到指定的模块”的错误,最终成功的安装方式如下:

fo40225/tensorflow-windows-wheel找到对应的版本下载whl,笔者下载的是tensorflow_gpu-1.12.0-cp36-cp36m-win_amd64.whl的avx2版本(有两个压缩包,解压出whl文件),如果安装不成功的话可以试试sse2版本,这里神奇的地方是该whl文件应该是在cuda100cudnn73avx2下编译的,但是我的环境是cuda100和cudnn74,竟然也是可以安装成功的,笔者久经磨难,喜极而泣

下载下来后通过pip安装

# 切换到whl目录
pip install tensorflow_gpu-1.12.0-cp36-cp36m-win_amd64.whl

# 进入ipython验证
import tensorflow as tf
tf.VERSION
# '1.12.0'

mxnet

mxnet安装比较简单,这里直接通过豆瓣镜像源用pip安装。

pip install -i https://pypi.doubanio.com/simple/ mxnet-cu100

# 进入ipython验证
import mxnet
mxnet.__version__
# '1.3.1'

mxnet的官网显示支持到cu92,实际已经有了cu100版本。

pytorch

pytorch的安装也很简单,在官网,选择pip、Python3.6、CUDA10.0,显示

pip3 install https://download.pytorch.org/whl/cu100/torch-1.0.0-cp36-cp36m-win_amd64.whl
pip3 install torchvision

这里先把链接https://download.pytorch.org/whl/cu100/torch-1.0.0-cp36-cp36m-win_amd64.whl拷贝到IDM下载whl文件,然后离线安装

# 切换到whl路径
pip install torch-1.0.0-cp36-cp36m-win_amd64.whl
pip install torchvision

#进入ipython验证
import torch
torch.__version
# '1.0.0'

Caffe安装

笔者使用的是happynear/caffe-windows版本的caffe,下载解压,同时下载第三方库拷贝到项目windows/thirdparty/文件夹,Copy .\windows\CommonSettings.props.example to .\windows\CommonSettings.props,打开Caffe.sln,根据github上的README修改配置文件.\windows\CommonSettings.props,编译成功后再参考README配置python和matlab,注意使用时需要将thirdparty/bin目录添加到path环境变量,否则运行时会报错

修改环境变量后以管理员运行CMD,运行

echo %path%

立即生效,不用重启系统。

配置文件修改

主要修改项如下:

  • UseCuDNN:true
  • CudaVersion:10.0
  • PythonSupport:true
  • MatlabSupport:true
  • CudaArchitecture:compute_50,sm_50;compute_52,sm_52;compute_60,sm_60;compute_61,sm_61;compute_70,sm_70;compute_75,sm_75;
  • CuDnnPath:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDNN-100。需替换为你的cudnn7.4的路径
  • PythonDir:D:\Anaconda3\envs\py36DL\。替换为你的python路径
  • MatlabDir:D:\Program Files\MATLAB\R2017b\。替换为你的matlab路径

根据wiki,RTX2080的Compute capability (version)为7.5,目前只有CUDA10.0支持7.5,因此CudaArchitecture中如果加入compute_75,sm_75;的话需要CUDA为10.0,否则会报错。如果装的是CUDA9.2,在不加compute_75,sm_75;的情况下也是可以编译成功的。

编译时常见错误

  • 将警告视为错误
    在报错的工程上右键,选择 属性→C/C++→将警告视为错误,改为否,生成项目。要是某个项目文件报这个错的话,也可以在相应文件上右键,进行同样操作。

  • The Windows SDK version 10.0.10586.0 was not found
    在报错的工程上右键,选择 重定SDK版本目标,选择 目标平台版本(默认就一项 8.1),点击确定,生成项目。

运行时错误

this is a bug of Caffe, I solved it by modifying cudnn_conv_layer.cpp and aligning the address to be multiples of 32.
You can insert tow lines of code before size_t total_max_workspace = … as follow:

size_t m=32;
max_workspace = (max_workspace + m-1) / m * m; //align address to be multiples of m

BTW, I think there is another bug, these lines should be put in else block:

for (int g = 0; g < (this->group_ * CUDNN_STREAMS_PER_GROUP); g++) {
  workspace[g] = reinterpret_cast<char *>(workspaceData)+g*max_workspace;
}

参考

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Win10+RTX2080深度学习环境搭建:tensorflow、mxnet、pytorch、caffe 的相关文章

  • CCMoveBy和CCMoveTo有什么区别?

    CCMoveBy和CCMoveTo有什么区别 cocos2d里面的CCMoveBy 和CCMoveTo有什么区别 含义不同的地方在那块 那位高人给解释一下 谢谢 insul 2010 09 14 18 52 by是相对于当前位置 to是到该
  • AI for Scinece Cup 邀请函:一等奖5万

    点击阅读原文 也可进入比赛报名页面
  • Three.js快速入门

    Three js快速入门 1 threejs文件包下载和目录简介 下载地址 网盘链接 https pan baidu com s 1 Ix8TiOScypNcQe3BIl5vA pwd rrks 提取码 rrks threejs文件资源目录
  • iTween基础之Value(数值过度)

    一 基础介绍 二 基础属性 原文地址 http blog csdn net dingkun520wy article details 50550527 一 基础介绍 Value有一个函数 ValueTo 返回一个 from 和 to 之间的
  • element table 合计 第一行 固定列

    element table 合计 第一行 在这位大哥这里学来的 但同时我这边的情况是 固定高度 第一列固定 参数多 因此 这个方法不能够完全满足 因此加入以下代码 代码作用 在每次获取到表格数据时进行操作 因为固定列后 第一列滚动到最底部都
  • np.random.randn()、np.random.rand()、np.random.randint()的区别和用法

    1 np random randn 函数 通过本函数可以返回一个或一组服从标准正态分布的随机样本值 语法 np random randn d0 d1 d2 dn 1 当函数括号内没有参数时 则返回一个浮点数 2 当函数括号内有一个参数时 则
  • SpringBoot+AOP实现用户操作日志的记录

    前言 任何一个项目都会有一个用户操作日志 也叫行为日志 的模块 它主要用来记录某个用户做了某个操作 当出现操作失败时 通过日志就可以快速的查找是哪个用户在哪个模块出现了错误 以便于开发人员快速定位问题所在 实现这一功能一般有两种方法 第一种
  • sqlite

    SQLite库包含一个名字叫做sqlite3的命令行 它可以让用户手工输入并执行面向SQLite数据库的SQL命令 本文档提供一个样使用sqlite3的简要说明 开始 启动sqlite3程序 仅仅需要敲入带有SQLite数据库名字的 sql
  • java调用C++代码

    首先我的参考博客如下 https www cnblogs com CLAYJJ p 7725975 html https www cnblogs com xiaocainiao2hao p 5619862 html https www cn
  • 安卓图片浏览app,应付期末考试的(附下载链接)

    安卓图片浏览app 一个简单的安卓app 采用andstudio开发 有注册登录功能 可以搜索详细情况请看应用截图所示 下载链接 https download csdn net download weixin 43474701 850717
  • 好好开始,好好告别,好好生活

    天气好像一下子冷了起来 才感盛夏 忽而立秋 季节轮换 很多人把很多人忘了吧 昨天我看到这样一句话 衬着淅沥了两天的小雨 莫名觉得有些伤感 这些年 不停地遇见 也不停地再见 总要等很久以后才知道 相遇是恰逢其时 离别也是早有因果 原来有些人出
  • Android Make Update-api 方法

    目录 SOC Rk3288Android Version 8 1 SOC Rk3566Android Version 11 SOC Rk3288 Android Version 8 1 众所周知 当修改到framework变量时 需要mak
  • 可视化图表种类不清楚?这两个宝藏参考网址推荐给你~~

    我是小z 不少读者会问 有啥介绍可视化类型的学习和参考资料 我平时在绘制可视化作品时 也会对种类繁多的可视化图表选择和系统绘制无从下手 今天 就推荐平时自己参考的可视化表种类网站 帮你熟悉和完善图表类型 内容如下 Chart Guide d
  • Ubuntu常用的有3种进入终端(terminal)界面方法

    Ubuntu常用的有3种进入终端 terminal 界面方法 分别如下 按快捷键 Ctrl Alt T 即可打开终端窗口 或者按 Ctrl Alt F1 F6 均可进入终端 模拟终端 不显示桌面 直接搜索 终端 并进入 注意事项 如果采用方
  • Java 校验规则

    import java util regex Matcher import java util regex Pattern import static jodd util StringUtil isEmpty 数据校验 author lf
  • SPI菊花链原理和配置

    一 概述 在一个主机和多个从器件的典型 SPI 系统中 通常采用专门的片选信号来寻址从器件 随着从器件数量不断增加 片选线也随之增多 这种情况将给电路板布板带来很大的挑战 一个布板方法就是采用菊链结构 本文详细讲述了 SPI 系统的菊链配置
  • Python的优点和缺点

    Python的优点 1 简单 Python的语法非常优雅 甚至没有像其他语言的大括号 分号等特殊符号 代表了一种极简主义的设计思想 阅读Python程序像是在读英语 2 易学 Python入手非常快 学习曲线非常低 可以直接通过命令行交互环
  • python爬虫学习笔记-M3U8流视频数据爬虫

    M3U8流视频数据爬虫 HLS技术介绍 现在大部分视频客户端都采用HTTP Live Streaming 而不是直接播放MP4等视频文件 HLS Apple为了提高流播效率开发的技术 HLS技术的特点是将流媒体切分为若干 TS片段 比如几秒
  • Sqli-labs通关手册【1-30关】

    1 sql注入的原理 1 sql注入的原因 语言分类 解释型语言和编译型语言 解释型语言是一种在运行时由一个运行时组件解释语言代码并执行其中包含的指令的语言 而编译型语言是代码在生成时转换为机器指令 然后在运行时直接由使用该语言的计算机执行

随机推荐

  • Hadoop中的契约监控机制,被惊艳到了

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 一 前情概要 二 背景引入 三 问题凸现 四 Hadoop的优化方案 一 前情概要 这篇文章给大家聊聊Hadoop在部署了大规模的集群场景下 大量客户端并发写数
  • 应用存储和持久化数据卷:存储快照与拓扑调度(至天)

    本文将主要分享以下两方面的内容 存储快照概念 使用与工作原理 存储拓扑调度背景 概念 使用与工作原理 基本知识 存储快照产生背景 在使用存储时 为了提高数据操作的容错性 我们通常有需要对线上数据进行snapshot 以及能快速restore
  • 【资源】小程序项目源码、项目图片素材、全栈课程、项目效果图、小程序mpvue项目实例等资源大全

    1 微信小程序源码地址链接 https pan baidu com s 1P9ISKk9YjSHbFCIqfCM pQ 提取码 g8c3 2 130个微信小程序源码地址链接 https pan baidu com s 1Hiq 6IVvzD
  • CSDN竞赛第56期题解

    CSDN竞赛第56期题解 1 题目名称 因数 数字游戏 小Q的柠檬汁做完了 掏出了自己的数字卡牌 想要和别人做数字游戏 可是她又不想要输掉游戏 她制定好规则 每 次每个人只能把这个牌换成它的因子的某个牌 但是这个因子不能是1或者整数本身 现
  • win10更新后,wsappx占用高内存/资源管理器占用CPU高

    目录 问题记录 搜索与实践 最终解决办法 系统还原 新问题 设置搜索不能用 问题记录 2022 7 26晚 没注意点击了 关机并更新 有个intel驱动更新 不确定是否是驱动问题 第二天开机各种问题 wsappx占用大量内运存 电脑卡死 重
  • 利用SQLite数据库进行用户名、密码的注册和登录验证

    利用SQLite数据库进行存储用户名 密码等等其他信息 首先是activity main布局界面
  • Java线程池没用好,我不小心把系统搞崩了!

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 背景介绍 线程池的基本工作原理 线程池高并发场景下问题剖析 线程池高并发场景下性能优化 总结 背景介绍 大家好 今天给大家讲一个比较偏硬核技术类的知识 就是 J
  • 怎么提高编程能力?逻辑思维能力?

    一 对于程序员的编程能力的提升 学习一门简单而且可用性强的语言 写点自动签到 自动下动漫之类的日常小程序 提高编程兴趣 比如 python 可以选择教材 Learn Python The Hard Way 学习常见的算法和数据结构 根据个人
  • AOF 复写

    AOF 复写 上一篇博客我们提到AOF持久化有一个缺点是 aof持久化的文件会越来越大 导致redis因为某个原因重启时需要加载的aof文件会非常大 加载的很缓慢 针对这一缺点就引入了AOF复写 什么时AOF复写 Redis 为了避免 AO
  • 基于java+springboot+mybatis+vue+elementui的高校学习用品购物平台

    项目介绍 近年来 随着信息技术的高速发展和现代网络技术的完善 电子商务日益受到人们的重视 发展成为一种新兴商务模式 高校学习用品购物平台是电子商务的一项重要内容 高校学习用品购物平台的出现 使得学生购物变得更轻松 快捷 方便 满足了广大师生
  • Linux快速安装MySQL

    文章目录 Linux上安装MySQL 1 安装MySQL 1 上传MySQL安装包以及MySQL驱动jar包 2 解压MySQL安装包 3 卸载系统自带的mariadb 4 安装MySQL依赖 5 安装mysql client 6 安装my
  • vulnhub靶场-SOCIAL NETWORK

    1 靶机信息 靶机名称 BOREDHACKERBLOG SOCIAL NETWORK 靶机难度 中等 虚拟机环境 此靶机推荐使用Virtualbox搭建 目标 获取到root 权限 靶机地址 BoredHackerBlog Social N
  • Dockerfile(5) - CMD 指令详解

    CMD 指定容器默认执行的命令 exec 形式 推荐 CMD executable param1 param2 CMD 可执行命令 参数1 参数2 作为ENTRYPOINT的默认参数 CMD param1 param2 shell CMD
  • JetBrains IDEA插件推荐

    主题 VSCode Dark vscode的蓝黑配色 长时间写代码不伤眼 毕竟是vsocde多年的累积 配合dark黑色主题看着非常舒服 SequenceDiagram 自动生成类的调用时序图 更直观的看到类的内部调用关系 Maven He
  • Vue3 入口文件createApp函数

    在2 x中 main js是vue项目的入口文件 引入构造函数Vue 然后new Vue传入配置项生成vm实例 如下 import Vue from vue import App from App vue import router fro
  • 【DASCTF2023】Misc mp3

    浅浅记录一道比较绕的misc题 有一道思路比较类似的题目 DASCTF7月赋能赛 Misc wp zysgmzb 博客园 题目 附件是一个mp3 查看了音频波形图之后发现没有什么收获 binwalk分析 发现是有一张图片 不过我用binwa
  • leetcode88.合并两个有序数组

    88 合并两个有序数组 题目叙述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2 另有两个整数 m 和 n 分别表示 nums1 和 nums2 中的元素数目 请你 合并 nums2 到 nums1 中 使合并后的数组同
  • Echars之雷达图的实现

    骑士李四记录 1 参数构造思路 参数 legend的data radar的indicator series的data 格式 series的data中的value要和radar的indicator的name一一对应 构造思路 构造series
  • Unity程序化地形教程 第二期 噪声图的完善和更多细节添加

    Unity程序化地形教程 第二期 噪声图的完善和更多细节添加 前言 完整的程序化地形教程在我的主页相关专栏中 目前正在持续更新 可以添加收藏 方便日后查找 零 学完本期能够实现的效果 书接上期 学完之后相比上期能够有更多的细节和优化 话不多
  • Win10+RTX2080深度学习环境搭建:tensorflow、mxnet、pytorch、caffe

    文章目录 准备工作 设置conda国内镜像源 conda 深度学习环境 tensorflow mxnet pytorch安装 tensorflow mxnet pytorch Caffe安装 配置文件修改 编译时常见错误 运行时错误 参考