前几天新买的一台电脑,加显示器和其它配件,共计2.7万元多。
一、硬件及系统基本信息(在dos命令中运行dxdiag查看)
系统型号(主板型号):XPS 8930
BIOS:1.0.10
处理器:Intel(R)Core(TM) i7-8700 CPU @3.7GHz(12 CPUs),~3.7GHz
内存:32768MB RAM
DirectX 版本:DirectX 12
操作系统:win10 专业版 64位
GPU:TITAN Xp,显示内存12145MB
二、安装过程 (联网的情况下)
1.首先安装了python 3.6 以及其它模块
网站https://www.python.org/ 进行了下载,而后安装。(安装过程中会提示是否加入环境变量)安装完毕后,打开CMD(最好以管理员身份运行),输入python可验证是否安装成功。(退出可输入quit()或者ctrl + z)
在命令行下,可输入pip list 查看已安装的模块,这时系统提示pip升级,进行了升级,由10.0 升级到 18.0
依次运行pip install numpy、pip install pandas、pip install matplotlib、pip install sklearn、pip install opencv-python
均安装成功,试图安装PIL,未获得成功。
2.安装Visual Studio
百度输入vs2015,进入官网,安装了2017的版本。在线安装,安装开始让选择安装内容,自己视情选择。
3.安装CUDA和CUDNN
百度找到官网链接,进入,离线下载cuda时exe包,两次均未成功(均是下载到99%失效),无奈之下选择在线安装。(安装过程选择自动加入环境变量)cmd中运行nvcc --version可查看版本。
下载相应的cudnn,解压后,将文件夹全部拷贝到../CUDA/v9.2 下,与原先文件夹内容合并。
4.安装GPU版本的tensorflow
1.失败安装:pip install tensorflow-gpu,安装成功后,进入python,运行import tensorflow提示错误,缺少cudart64_90.dll文件。后经查询网络,得知默认安装的tensorflow版本不支持cuda9.2。
解决办法:(1)卸载cuda9.2,安装9.0;(2)寻找支持9.2版本的tensorflow。
自己选择了第二个方式:(https://github.com/fo40225/tensorflow-windows-wheel)
https://raw.githubusercontent.com/fo40225/tensorflow-windows-wheel/master/1.10.0/py36/GPU/cuda92cudnn72avx2/tensorflow_gpu-1.10.0-cp36-cp36m-win_amd64.whl
下载二进制安装包,利用pip install 文件路径 的方式进行安装。注意:下载完安装时,文件不能改名。
5.运行验证(转载)
import tensorflow as tfa = tf.test.is_built_with_cuda() # 判断CUDA是否可以用b = tf.test.is_gpu_available(cuda_only=False,min_cuda_compute_capability=None ) # 判断GPU是否可以用print(a) print(b)
输出结果是:
True
True
代表CUDA和GPU可用。
(2)代码如下:
import tensorflow as tfwith tf.device('/cpu:0'):a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a')b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b') with tf.device('/gpu:1'):c = a + b# 注意:allow_soft_placement=True表明:计算设备可自行选择,如果没有这个参数,会报错。 # 因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。 sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=True)) # sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) sess.run(tf.global_variables_initializer()) print(sess.run(c))