云服务器深度学习租GPU尝试记录

查看了4070ti的价格,左思右想,还是先试一下租GPU看看可不可行,自己买的话,固然是最安稳的,但是也存在需要地方摆放,能耗&配套,一旦买定不能升级,不知道以后还会不会想要更高级的GPU,资金投入大,而租GPU则是使用门槛高,包括如何与远程服务器通信、数据存储等等,为了了解租GPU的可行性,还是决定试一试,使用云服务器有很多文档要看,这里就不一一解释具体是在做什么了,精简记录一下流程。

稍微比较一下,选择了恒源云平台,首先注册一个账号,进入首页点击控制台;

点击我的数据-oss安装,我是windows版本

出现一个安装包,右键打开,可能会出警告,继续执行;

 弹出一个 命令提示符窗口 ,输入 version 查看是否安装成功:

问题出现了,明明安装成功了,按文档输入命令,结果报错:

 解决方法;去掉 oss 直接输入 help 可查看常用命令(在windows本地机器去掉oss,在实例jupter上还是需要oss)。输入login回车,输入用户名+密码,登陆成功:

创建一个文件夹:

将windows本机中的 zip文件 上传至 建好的文件夹 中,可以看到速率还行(这里上传后使用了oss存储空间,将会开始收费,目前是¥0.0004 /GB·小时):

使用filezilla传输数据到tmp文件夹,需要先创建实例,tmp文件夹跟实例紧密相连:

创建实例需要选择显卡类型,及pytorch,cuda,python版本:

可获取ssh命令密码,通过filezilla进行传输文件。具体参考官方文档。

传输速度还是蛮快了 ,好像没下载成功。传过来unzip解压失败,好像不能解压超过4g的zip文件,一开始以为是文件损坏,重传好几次,参见:

error [XXX.zip]: start of central directory not found; zipfile corrup-CSDN博客

 使用云服务器的不便之处出现了,发现了第一个矛盾之处,oss只能上传zip文件,但超过4g的zip不能在linux实例中用unzip解压。只能上传不能解压?其他网友上传了一些解决方案。

对于mvtec数据集我尝试了另一个方法,直接从官网下载 后缀为 tar.xz 的文件:

wget https://www.mydrive.ch/shares/38536/3830184030e49fe74747669442f0f282/download/420938113-1629952094/mvtec_anomaly_detection.tar.xz

等待数据下载的时候,通过vscode 远程连接 实例(ssh命令和密钥参考前文),根目录是root,与filezilla一致。 

通过初步运行可以知道,实例创建时候自带一个比较基础的base环境,但是肯定需要自己重新构建,这也是我关于云服务器的一个疑惑,这个环境是不是每次使用(关机后24小时内开机)都需要重新构建?root内的代码运行时是否可访问 hy-tmp文件夹内容?

需要的环境以environment.yaml形式打包在模型中,使用命令一次性创建,报错,大概是由于环境中涉及到很多国外的资源,国内服务器无法访问,需要换源。

根据文档:实例相关 - 恒源云用户文档

中conda换源粘贴命令行,换源(清华)后重新输入 conda env create -f environment.yaml进行环境创建,报错Collecting package metadata (repodata.json): done Solving environment: failed 

原因是我的 environment.yaml中的包有一些特殊的指定,在第二个等号后面,这个是不必要的,所以找不到对应的包,所以环境安装失败。

使用创建conda环境配置出现conda env create -f environment.yml报错解决办法-CSDN博客

上面这个博客的第一个评论代码实现将第二个等号及后面的内容清除,但需要注意的是我直接使用报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

排查发现我的 environment.yaml 文件编码方式是 UTF-16LE(vscode右下角查看)。更改后只有少量包找不到了,可参考上一个引用博客,注释掉用pip安装。但我注释掉后报错:SpecNotFound: /root/clone_cloud/IGD/environment.yaml is not a valid yaml file.于是我把那4个删除了,终于!泪目了家人们!开始安装了!安装好环境运行代码又报错:ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory,有点累,定位好像是系统依赖库。根据chatgpt,linux系统输入以下命令可解决。

这个错误消息 ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory 表示在尝试导入 OpenCV (cv2) 模块时,系统无法找到名为 libgthread-2.0.so.0 的共享对象文件。
这通常发生在缺少系统依赖项或库文件的情况下。在这种情况下,缺少 libgthread-2.0.so.0 文件,它是 GLib 库的一部分,OpenCV 在其内部使用。

要解决这个问题,您可以尝试以下解决方法:

  1. 安装缺失的依赖项:运行以下命令安装 libglib2.0-dev 包(适用于基于 Debian/Ubuntu 的系统):

sudo apt-get install libglib2.0-dev

终于终于是可以运行代码了。。。回头看数据这边,tar.xz终于是下载好了,根据chatgpt进行解压,毫无动静。。。只是等待得有点久了,还是解压成功了,看来tar.xz还是可以正常解压的。但是它解压以后散开了,里面的内容散作一团。。。

后面还需要进行 hy-tmp数据访问,上传oss。。。待更新

醒了,书接上回,云服务器的环境可以在实例关机后 通过 创建备份镜像 的方式存储,但是但是需要消耗一定的时间,时间挺长的。

详细参考 用户文档-实例管理-镜像 。 创建备份镜像完成后在 我的镜像 中可以看到备份的镜像:但很尴尬,它说我镜像过大==,可能会导致实例启动慢,迁移失败等问题,所以要使用云服务器,最好是针对每个模型裁剪出一个精简的环境,不需要的包就不要了==,但是这显然是有些不方便。保存镜像也是需要收费的。不是吧,就这一会儿功夫,就没显卡可用了==可以选择迁移点击去迁移,无4070TI过会儿再看又有卡了,暂不迁移。如果是新手,建议选一个便宜的卡,先把数据通信这一套流程走熟练了,再开贵的卡。这个卡训练起来确实快,但是训练之前的准备工作还是挺多的,像我一样摸索也是会收费的。直接开启实例,将数据地址更改为 /hy-tmp 下面的训练数据,root和hy-tmp同级,但可以访问。训练时产生的文件在IGD目录下,也就是在root目录下,可以看到随着实例的训练产生较大的 pt文件导致实例已用空间增长:就目前而言已经看到了3个存储空间:

1:实例总空间:免费20G,满了可能打不开实例,可随实例迁移(猜测是除了 hy-tmp 之外的文件夹或者 仅root文件夹的空间。

2:hy-tmp:开机免费50G,关机24h后删除数据,用于存放数据集,和训练生成的数据(最好放这里)

3:oss:收费存储,但只能上传压缩包zip

偷偷尝试使用oss将root中的生成文件夹checkpoints上传到oss中,被一连串问题拷打,oss存储是阿里云提供的好像使用存储桶模式,无法保存文件结构,所以会把这个文件夹里面的内容全部拆解开单独存储。选一个权重文件夹进行压缩并查看大小然后将打包的文件上传到oss,永久保存(只要不欠费)注意需要登陆。然后在控制台就能看到上传的数据了看到实例信息,数据盘已使用9.83,这个应该包括了tmp文件夹(约5g)及root文件夹(生成文件)。训练生成的数据上传到oss完成后,实例关机,打开windows本地机器oss终端,登陆,可看到已经上传好的压缩文件。使用命令下载到本地可以看到压缩文件到达本地电脑,但是tar.gz文件在windows上不能直接解压,需要安装软件或者linux子系统,待更新。20231220更正:不需要安装linux子系统,直接使用windows的winrar压缩文件管理器即可解压。但是windows无法压缩出 tar.gz 或者 tar.xz 文件,目前看来,最好使用第三方工具(据说7-ZIP可以)压缩为 linux 友好的压缩包再传到 linux服务器 解压会方便很多。画了一个大概的信息流程草图:

暂时完结,如果有新的信息再更。

20240504更新:自从后面自己买了台式就没管了,今天恒源云给我发消息说我欠费了,也就是30元扣光了,赶紧登录将所有数据删除了,其中oss中,登录命令行把所有创建的文件夹删了,仅仅在网页上删不干净,还留有一个空壳文件夹。ls命令也不显示。

这样就删除完所有收费项目了。 

  • 37
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
云服务器是一种常用的方式来运行深度学习任务,特别是对于计算资源要求较高的任务。通过用服务器,您可以获得更强大的计算能力,从而加快深度学习模型的训练速度。 云服务器的过程通常是先选择一个云服务提供商,例如亚马逊AWS、谷歌云平台或微软Azure。然后,在您选择的服务提供商的网站上注册账号并登录。接下来,您可以选择合适的服务器实例,通常根据计算能力和价格来进行选择。一般来说,服务器实例会提供不同的配置选项,包括CPU和GPU的型号和数量,内存大小等等。对于深度学习任务,推荐选择配备一定数量的高性能GPU的服务器实例,以加速训练过程。 完成选择后,您可以按照平台提供的指引进行实例创建,并配置操作系统环境。对于深度学习任务,您需要确保服务器上已经安装了相应的深度学习框架和依赖库,例如PyTorch、TensorFlow等。您可以通过命令行或者虚拟环境来安装这些库。 一旦服务器创建完成并配置好环境,您可以通过SSH等方式连接到服务器,并将您的深度学习代码和数据上传到服务器上。在服务器上,您可以使用命令行或者Jupyter Notebook等工具来运行您的代码,并观察训练过程和结果。 通过云服务器,您可以充分利用其强大的计算能力来加速深度学习任务的训练过程,同时也可以灵活地调整服务器配置,以满足不同任务的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值