笔者是从慕课网的视频一步步把老师的过程扒下来的,第一次写教程,若有错误可指出,有好的操作也可以分享。
浏览器建议使用Chrome,很多相关的API或者环境配置在tensorflow官网都可以查询到,视频资源推荐B站。
需要用到的linux命令, cd ,ls ,sh,vim ,nohup,wget ,sudo等,
需要用到的vim 命令:按下i进入编辑模式,编辑完成按Esc退出编辑,按:进入命令模式,此时输入wq后回车即保存退出。
登录cloud.google.com,点击右上角”开始免费试用“,填写信用卡信息和个人信息,即可获得300刀的余额,有效期一年,此时会扣款1刀(会返还,不会入账),返回首页后点击右上角控制台。
进入控制台后,点击左上角的导航栏,可以在Billing中查看余额和使用情况。
点击IAM&Admin, Quotas
在Metric中清除所有,选中GPUs(all regions) (此时需要升级用户,即自动续费才可继续进行,信用卡可以解绑,平时注意余额不要超了就好),选择Compute Engine API 的GPU(all regions),点击上方Edit quotas,此时需要填写申请,可以稍微写写,比如“for deep learning homeworks "等等之类,提交后等待管理员审核,审核通过后会发送邮件到Gmail。
收到以下邮件说明申请成功
点击Compute Engine,选择VM instances,点击Create
1、Region , Zone:不同地区的GPU型号,收费、延迟等都有差别,根据自身情况选择。
2、Machine configuration: 选择机器类型,如图选择4核15GB内存,也可自定义,GPU选的K80(不同地区能用的型号不同,甚至可能没有,多选几个地区查看),右上角有预计费用,显卡的费用较贵,不加GPU每小时几美分,K80大概$0.45/h,足够使用,参考设置如图。
PS:GCP是按开机时间收费的,所以不开机就不收费,不用记得关闭,费用显示的是一个月不关机产生的费用
3、Boost disk:硬盘50GB(可以适量大)系统选择Ubuntu18.04 ,Firewall勾选Allow HTTP 和HTTPs,其他保持默认即可,最后点击Create,机器会自动开机,开关机需等待30s左右,开机成功如下图,关机点击右边的Stop,最好等待显示关机成功后再关闭网页。
开机成功:
静态IP地址配置(建议做)和防火墙Firewall配置,这步是为了能够更方便的连接服务器。
此时35.238.131.27是临时的外部IP地址,手动修改为静态IP,左上角菜单选择VPC network,External IP addresses,将Type修改为Static,名字随意。
然后左侧菜单选择Firewall rules,点击上方Create Firewall rule,如下图修改Targets为all instances ,以源地址过滤的IP允许所有,即地址段写为0.0.0.0/0,同时TCP访问端口增加6000-6500保存。
点击SSH,连接到机器控制台,此时即为我们创建的机器,现在机器里很多应用都没有,我们需要装上所需要的环境。
0、为什么是步骤0呢?因为一开始直接从后续的步骤1配置机器没有什么问题,但后面重新创建机器的时候遇到过配置不成功,找了很多个原因,最后通过以下方式配置成功,因此讲其写在前面,可尝试跳过。
打开Nvidia官网找到cuda toolkit (下面地址为cuda10.2 的版本),找到对应版本的驱动,此时我们是Linux X64 Ubuntu 18.04,下方会生成安装代码,可以直接复制到刚刚打开的控制台然后回车等待安装完成。
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=debnetwork
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda
1、在Tensorflow的官网找到安装指引(https://www.tensorflow.org/install/gpu ),多个版本的linux系统都有对应的安装方式,我们找到Ubuntu18.04(cuda10.1),下方代码直接复制到控制台回车即可安装,或者通过vim建立一个shell来运行。
我使用脚本运行,vim install.sh 创建一个脚本,然后把上面代码粘贴进去,用sh -x install.sh 运行。
2、测试是否安装成功,可以输入nvidia-smi,若如下显示则安装成功。
1、安装python
sudo apt-get install python3-dev python3-pip
2、创建虚拟环境
通过source 命令激活。每次开启服务器都需要通过Source命令激活该环境。
创建该环境是为了能够虚拟出一个环境,可以通过设置多个虚拟环境,各个环境之间不会相互影响,相关命令和原理自行查询不再赘述。激活后用户名前会出现环境名称,激活后可直接使用pip进行安装python库:
sudo pip3 install -U virtualenv
mkdir environment
cd environment
virtualenv --system-site-package -p python3 ./tf_py3
source tf_py3/bin/activate
3、在此环境下安装tensorflow和相关库
pip install --upgrade tensorflow-gpu
pip install numpy matplotlib sklearn pandas jupyter pillow
4、测试环境
控制栏输入python,导入tensorflow的包后通过内置的测试函数来测试,若不是如下显示的返回True,尝试重新安装cuda
python
>>>import tensorflow as tf
>>>tf.test.is_gpu_available()
5、使用jupyter进行编辑
输入 jupyter notebook --generate-config 生成配置文件,在主目录用ls -a 就可以查看到.jupyter 的一个文件,进入该目录,用vim编辑jupyter_notebook_config.py这个文件
将以下代码复制进空白区,保存退出,port=6006即外部主机访问该云服务器的jupyter时的端口,可自行修改,但是必须在之前设置的TCP端口范围
c=get_config()
c.NotebookApp.ip='*'
c.NotebookApp.open_browser = False
c.NotebookApp.port=6006
c.NotebookApp.allow_remote_access = True
然后回到主目录运行jupyter notebook 会发现下面有提示几种本地访问方式,我们选择通过刚刚设定的静态IP地址访问,打开浏览器输入IP地址:6006 (如35.238.131.27:6006)
下方输入需要设定的密码,还有控制台信息中的token(即等号后面的一长串字符),以后登录就可以直接使用自己设定的密码登录了。
到这里就大功告成了!然后就可以在这里编辑自己的代码啦!
jupyter运行的是ipynb文件,可以在本地编辑好py文件,然后直接upload,或者在控制台使用git clone 从GitHub直接导入代码都可以。
1、为jupyter是在前台运行的,我们想要在后台运行可以使用以下命令
nohup jupyter notebook &
然后会返回进程的PID,需要结束是直接kill 即可,具体可自行百度
2、为什么要让jupyter后台运行呢?有一个重要的原因是需要启用tensorflow的tensorboard,回到控制台,cd到你tensorboard的生成目录,用以下代码可以可视化你的权重,其中port=6008即访问的端口,可以直接访问IP地址的端口(如35.238.131.27:6008) tensorboard的使用方法功能也可自行百度,这个可以实时监控模型的训练情况,推荐使用。
tensorboard --logdir=logs --port=6008 --bind_all
参考视频是慕课网(B站有资源)的Tensorflow2.0教程,可自行查阅。