安装Visual Studio
Tensorlfow需要Visual Studio环境的支持,所以我们首先安装VS2019,去官网下载就好了,这里就选择Community版本,要是速度慢的话,这里提供百度云下载连接:
链接:https://pan.baidu.com/s/1vIkU6ASVelAcQyk62D5eUQ
提取码:y1px
复制这段内容后打开百度网盘手机App,操作更方便哦
下载后解压安装就好了。
因为官方的安装方式就像一个下载器,要想把安装文件一次性的缓存到本地离线安装,可以采用下面的办法。
制作离线版Visual Studio
- 首先下载你想要安装不同版本的安装文件,这里以Community为例:
下载完成后先不要急着运行,在相同目录下创建一个文件夹,便于操作我们取名为:vs2019_community,如下图:
- 在目录下按住shift键后右键,启动Powershell窗口,在任务栏上的Powershell窗口上右键选择‘以管理员身份运行’,然后键入以下内容:
./vs_community.exe --layout E:\你的路径\vs_community_2 --lang zh-CN
这里说明一下这里的参数的含义:
详见 :https://docs.microsoft.com/en-us/visualstudio/install/create-an-offline-installation-of-visual-studio?view=vs-2019
- 回车运行就好了,开始下载Visual Studio,关注进度不出错就完成了。
安装CUDA
查看英伟达的CUDA版本:
步骤:
1. 桌面右键单击,进入NVIDIA控制面板
- 控制面板-帮助-系统信息-组件:
可以看到在当前驱动版本下的CUDA版本为10.0。
下载对应版本的CUDA和cudnn
- 访问nvidia developer官网,地址在这里,可以看到CUDA的所有历史版本,选择对应的版本,下载local版就好了。
2.根据CUDA与cudnn的版本对照表,地址在这里,下载对应与CUDA版本的cudnn。
3.安装CUDA和cudnn
先安装CUDA,直接运行,这里选择精简模式,也有教程是自定义模式,取消VS安装的部件。
安装完成后,解压cudnn,把得到的三个文件夹直接复制到CUDA的安装目录,这里我是安装到C盘:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
安装完成后,在系统变量中已经可以看到相应的值。
到这里CUDA和cudnn的安装就结束了。
创建对应的Python虚拟环境并安装TF
- 我使用的是Anaconda来创建python的虚拟环境,因为现在tensorflow所支持的最高python版本为3.6。直接在Anaconda Navigator里创建相应的Python版本,并命名为tensorflow。
-
创建成功后,进入tensorlfow环境下的Scripts文件夹,在这个文件夹下以管理员身份运行cmd,安装tensorflow。
Scripts路径:
C:\Users\你的用户名\Anaconda3\envs\tensorflow\Scripts
GPU版本的tensorflow安装命令:
./pip install tensorflow-gpu #调用pip
-
安装完成后在系统的PATH变量中添加tensorflow虚拟环境的路径。
至此,安装就结束了,下面测试一下。
测试
在Pycharm中选用这个tensorflow的解释器,测试代码:
import tensorflow as tf
# Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
print(sess.run(c))
结果:
2019-06-04 16:39:40.780280: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2019-06-04 16:39:41.210199: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1433] Found device 0 with properties:
name: Quadro P3200 with Max-Q Design major: 6 minor: 1 memoryClockRate(GHz): 1.404
pciBusID: 0000:01:00.0
totalMemory: 6.00GiB freeMemory: 4.94GiB
2019-06-04 16:39:41.210557: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1512] Adding visible gpu devices: 0
2019-06-04 16:39:42.199882: I tensorflow/core/common_runtime/gpu/gpu_device.cc:984] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-06-04 16:39:42.200070: I tensorflow/core/common_runtime/gpu/gpu_device.cc:990] 0
2019-06-04 16:39:42.200182: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1003] 0: N
2019-06-04 16:39:42.201899: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 4689 MB memory) -> physical GPU (device: 0, name: Quadro P3200 with Max-Q Design, pci bus id: 0000:01:00.0, compute capability: 6.1)
Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: Quadro P3200 with Max-Q Design, pci bus id: 0000:01:00.0, compute capability: 6.1
2019-06-04 16:39:42.206646: I tensorflow/core/common_runtime/direct_session.cc:317] Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: Quadro P3200 with Max-Q Design, pci bus id: 0000:01:00.0, compute capability: 6.1
2019-06-04 16:39:42.209553: I tensorflow/core/common_runtime/placer.cc:1059] MatMul: (MatMul)/job:localhost/replica:0/task:0/device:GPU:0
2019-06-04 16:39:42.209803: I tensorflow/core/common_runtime/placer.cc:1059] a: (Const)/job:localhost/replica:0/task:0/device:GPU:0
2019-06-04 16:39:42.210036: I tensorflow/core/common_runtime/placer.cc:1059] b: (Const)/job:localhost/replica:0/task:0/device:GPU:0
MatMul: (MatMul): /job:localhost/replica:0/task:0/device:GPU:0
a: (Const): /job:localhost/replica:0/task:0/device:GPU:0
b: (Const): /job:localhost/replica:0/task:0/device:GPU:0
[[22. 28.]
[49. 64.]]
Process finished with exit code 0
完美!使用P3200显卡,测试成功。
后记
有时发现即使我们安装了正确的CUDA和cudnn后,在Python中导入tensorflow也是会报DLL的错,这里有一个解决办法,就是先卸载目前版本的NVIDIA显卡的驱动,包括物理引擎的驱动之类的。卸载完成后,不再安装NVIDIA显卡驱动,直接安装CUDA 10.0和对应的cudnn就好了,测试后可以完美启动。
这里给出两个对应版本的配置和安装文件:
配套版本1:
显卡:GPU 1
NVIDIA Quadro P3200 with Max-Q Design
驱动程序版本: 25.21.14.1971
驱动程序日期: 2019/3/18
DirectX 版本: 12 (FL 12.1)
物理位置: PCI 总线 1、设备 0、功能 0
配套CUDA、cudnn下载地址:
链接:https://pan.baidu.com/s/1A0wElx_hX5HGbwP5K6BC1g
提取码:gi9w
复制这段内容后打开百度网盘手机App,操作更方便哦
配套版本2:
显卡:
暂空
发表回复