由于模型优化过后训练时间太长,所以想使用显卡或者租服务器进行训练,but显卡太贵(只有A卡),那就租服务器好了,开始了解怎么租,去哪租一系列问题,果然只要开始思考,就是一个接一个的困难,直接被击碎。终于找到了AutoDL,美美的开始租服务器,结果又绊在了选择镜像上,一开始我以为是要在本地部署好相关环境,然后使用自己租的显卡,安装好了对应的cuda以及cudnn,胡乱折腾了一天,没想到使用GPU训练这么复杂。第二天继续研究,发现根本不需要在本地部署(我心态超好)起码创建虚拟环境什么安装命令给我练熟了!会了之后发现挺容易的哈哈哈哈(但我自己瞎琢磨了一两天)
本文主要解决问题:如何租用服务器、如何使用Pycharm远程连接服务器进行模型训练
如果你也是第一次租用服务器,那就接着看下去吧!希望可以快速帮到你!!!
1.租用服务器
个人认为AutoDL很不错,建议先去看帮助文档,能解决大部分问题。
快速开始,我这里选择的镜像是TensorFlow 2.9。租好之后,默认开机状态,建议关机或无卡模式开机!
如果给出的框架版本或者python版本不满足需求,可以在框架官网查看对应版本,选择对应cuda版本的Miniconda镜像,如果都不满足,随便挑选一个Miniconda镜像,在开机后自行安装相关框架、CUDA、其他版本的Python。
查看tensorflow对应的版本以及cuda版
建议多租几块,只要不开机,就不会承担费用。只租一块的话,可能出现空闲GPU不足的情况。
2.pycharm远程开发
只有专业版支持远程开发,你需要安装一个professional pycharm
Pycharm—>File—>Settings
在AutoDL->控制台->容器实例中获取你需要连接的服务器的登录指令(建议无卡模式)
继续下一步,直到看到下面的弹窗。选择System Interpreter,配置远程Python解释器地址为/root/miniconda3/bin/python
配置同步目录,意思是本地项目和远程实例中的哪个目录进行关联,这里设置为实例的数据盘子目录:/root/autodl-tmp/project/ (不建议使用默认的/tmp目录)(我这里忘记改了)
3.创建虚拟环境
你可以就在base中安装依赖,但我建议创建虚拟环境(使用虚拟环境可以避免包的混乱和版本冲突)
conda create -n tf-gpu python=3.8 # 构建一个虚拟环境,名为:tf-gpu
conda init bash && source /root/.bashrc # 更新bashrc中的环境变量
conda activate tf-gpu # 切换到创建的虚拟环境:tf-gpu
4.安装软件依赖
# 切换conda虚拟环境后
conda install tensorflow-gpu==2.9.0 # conda会自动解析依赖安装tensorflow 1.15.0版本需要的cuda和cudnn,无需自己独立安装
不放心有没有对应的cuda和cudnn,可使用以下命令进行查看
# 查询平台内置镜像中的cuda版本
ldconfig -p | grep cuda
# 查询平台内置镜像中的cudnn版本
ldconfig -p | grep cudnn
# 安装完使用Python进行简单的测试:
import tensorflow as tf
tf__version__
5.上传数据集
通过xftp上传数据集,直接手动拖拽上传即可。其他上传方式可参考AutoDL
6.运行代码
选中需要运行的文件,点击右键
复制一下,然后进入终端运行
在pycharm->terminal中会出现文字乱码情况,建议使用AutoDL的快捷工具JupyterLab进入terminal。
温馨提示:进入之后默认是base,如果创建了虚拟环境的话,一定要切换到你创建的环境中,然后运行代码!
修改Pycharm代码,会自动上传(配置远程服务器中勾选了Automatically upload复选框),如果找不到可运行的文件,重复以下步骤重新运行即可
7.自动关机
为了省,我们希望程序执行之后立马关机,我们可以在命令行之后加shutdown来实现
python 需要运行的文件名.py && shutdown # 用&&拼接表示前边的命令执行成功后才会执行shutdown