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

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),点击确定,生成项目。

参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员互动联盟

热爱编程的程序员能疯狂到什么地步?

作为一个在编程行业已经混迹了十几年的老程序员,虽然现在全部的精力不是全部铺在一线写代码,但现在起码一半的时间还在如痴如醉的写代码,而且估计这辈子都不会完全脱离代...

14320
来自专栏Java帮帮-微信公众号-技术文章全总结

在Windows上用Java代码模仿破解WIFI密码【大牛经验】

本文纯属技术探索,与真正的破解还有很大差距,请广大网友切勿利用本文内容做出任何危害网络安全的行为。若有违法行为,均与本人无关。

1.4K20
来自专栏云存储

充分利用服务器闲置资源,搭建成私有网盘

通常来说,我们在购买服务器搭建网站后,服务器上还会有很大的资源处于闲置状态,那么我们怎么来利用好这些闲置资源呢?一招制敌,闲置资源+kodexplorer瞬间变...

2.7K10
来自专栏华仔的技术笔记

光子网络(Photon network)使用场景描述

光子网络(Photon)作为光谱区块链上ERC20 token和ERC223 token链下支付网络,具有安全、快速、可扩展和低成本的优点,可以满足多种场景的链...

25930
来自专栏noteless

抽象工厂模式 创建型 设计模式(四)

所有的ConcreteCreator的返回类型都是Product,因为抽象工厂角色Creator就是返回Product 

8120
来自专栏网站漏洞修补

网站漏洞扫描对discuzX3.2 X3.4SQL注入攻击的网站漏洞修复

2018年12月9日,国内某安全组织,对discuz X3.2 X3.4版本的漏洞进行了公开,这次漏洞影响范围较大,具体漏洞是discuz 的用户前段SQL注入...

69850
来自专栏FreeBuf

低功耗蓝牙(BLE)攻击分析

蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。可以说蓝牙是当今世界上,最受欢迎和使用最为广泛的无线技术之一。随着物联网的快速发展,蓝牙技...

61330
来自专栏GreenLeaves

IIS 站点部署多级域名

当站点的规模达到一定程度,往往会对业务进行拆分,部署到一台服务器的不同站点,,而一个域名(顶级域名)只能绑定一个站点(核心站点),这个时候就通过给顶级域名创建子...

41830
来自专栏章鱼的慢慢技术路

在Ubuntu主机下实现与Windows虚拟机共享文件夹

由于要实现Ubuntu主机中的一些文件与Windows虚拟机共享,因此要创建一个共享文件夹映射到虚拟机中.

1.1K10
来自专栏陈树义

JVM系列第3讲:到底什么是虚拟机?

我们都知道在 Windows 系统上一个软件包装包是 exe 后缀的,而这个软件包在苹果的 Mac OSX 系统上是无法安装的。类似地,Mac OSX 系统上软...

11020

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励