本篇内容:配置好谷歌开源bert运行环境。开源地址:https://github.com/google-research/bert
关于BERT的介绍就不多说了,直接看我们将配置的环境:
- tensorflow_gpu 1.11.0
- CUDA 9
- cudnn 7
- python 3.6
注意,这些环境都是一一对应的,不能乱下。如果想下载其他版本,附上对照表链接:
配置好后,就可以运行google-bert模型了,当然要跑起来还需要设置参数什么的,这部分之后再说。
注意:tensorflow_gpu版本需要你的电脑有NVIDIA GPU,否则只能跑tensorflow_cpu版本。选择GPU版本,当然是因为用空闲的GPU能提高模型的运行速度了。
满足这上面的所有要求,就可以往下继续了,很快啊。
一、安装CUDA和cudnn
从官网下载的话太慢了。我在网上找到了网盘下载渠道。直接放博客链接:
1、安装CUDA的坑
下载完CUDA后是一个可执行文件,双击进入安装界面。需要注意:在安装时,选择自定义安装,并且取消勾选Visual Studio。见下图(搬运的他人博客图)
2、安装cudnn
下载完cudnn后解压,这只是一个文件,文件内容如下:
复制这些文件,粘贴到CUDA的安装目录下(文件不会被替换,全都是新添加)。弄好后,CUDA安装目录下应该是这个样子:
3、添加系统环境变量
在安装CUDA的时候,系统环境变量都被自动添加了。但是还有一个需要我们手动添加,如下图:
照着你们自己的环境变量,很容易就能知道怎么添加了吧。这里有一点这三个环境变量都要放在最上面,是否必须这么做我不知道,但是放在最上面总没错。
二、Anaconda安装
这里只要用Anaconda就很方便了。在官网下载好像也挺快的(也可以去清华镜像下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ ),下载网址:https://www.anaconda.com/products/individual#Downloads
选择win10 64位版本就是常识了。注意安装时要选上添加到环境变量。
下面的操作一气呵成(打开win10命令行):
- 为了解决conda的install太慢的问题,执行如下语句(一劳永逸):
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
- 在命令行输入:
conda create -n tensorflow_gpu python=3.6
。中间会有让你确认的选项,输入y
就行了。 - 激活环境:
activate tensorflow_gpu
。激活后,在当前目录前会显示(tensorflow)字样,就像:(tensorflow_gpu) C:\Users\w>
。之后我们跑bert模型时,每次都要激活一下。 - 安装必要的库(我不知道这一步是否必须,但是执行总是没坏事):
conda install anaconda
- 执行:
conda install tensorflow-gpu
- 下载对应版本的tensorflow_gpu:
pip install tensorflow-gpu=1.11.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
三、验证
啊,很快啊,我们就把环境配置好了。现在验证一下我们的tensorflow_gpu能不能跑起来。
命令行输入下列命令:
>> activate tensorflow_gpu
>> python
>>> import tensorflow as tf
>>> hello1 = tf.constant('hello, tensorflow!')
>>> session = tf.Session()
>>> print(session.run(hello1))
如果看到了输出b'hello, tensorflow!'
说明配置成功。
在import tensorflow时可能会有一些Waring跑出来,上网自己查查很快就解决了。
四、琐碎
- 如果发现安装了错误版本的tensorflow,执行
pip uninstall tensorflow_gpu
重新安装就可以了。 - 安装过程如果发现太慢,找一下有没有镜像!!
- 如果下了多版本python,一定要注意pip指令的使用!不同的python版本对应不同的tensorflow,多个pip添加到环境变量中的话,系统只会找第一个。