联想集群超算LICO初次使用踩坑说明(遇到的错误,一些使用方法和singularity新建容器方法)

说明

本文主要写一些我这几天初次使用LICO的过程中遇到的一点问题和解决的办法,还有一些模块的规范使用方式,和一点自己的小经验,以后如果在使用过程中踩到其他的坑和一些模块的使用方式会慢慢进行更新。。希望对你有所帮助。
环境:LICO5.5
浏览器:Google浏览器
登录方式:英文登陆(有时中文登陆会遇到问题在进入singularity镜像时)
主要参考内容:《LiCO 5.5.0用户指南》

帮助:可以直接ctrl+F开启浏览器的查找关键字,来快速定位到想要的内容

建议新人前俩个章节一定要看下。

遇到的错误(重要)

联想标准AI中我使用的模块遇到的错误

这个就不多写了,,
只要按照步骤
只要按照步骤
只要按照步骤
怎么都不会有错误

标准AI中我使用的模块遇到的错误

关于错误的详情,可以百度搜索csdn,但是解决错误的方法,如果你在这个博客内搜索,并有,建议按照这个写的方法解决,如果识别的话再搜别的,因为这里面会有我的一点点经验,并且有的错误解决方法我给出了我当时解决时的参考博客的连接。

ModuleNotFoundError: No module named ‘matplotlib’ 或 ‘xxxx’
在这里插入图片描述

解决办法
方法1 最简单的,看代码中,如果improt的这个库没有用,那就直接不引用。
方法2 这个是我的方法,换一个包含这个库的镜像,可以自己制作,参看通用的一些说明(重要)章节或者联系管理员让管理员在系统镜像中安装该库(当然这个库要有通用性,,)
方法3 自己进入专家模式然后pip一下试试,反正我这里不行,没有读写权限是第一,第二识别不了pip指令。
SyntaxError: Non-ASCII character ‘\xe4’ in file“xxxx”,but no encoding declared; see"xxxx"
在这里插入图片描述
解决办法
在需要运行的所有代码文件中的第一行加入:

#coding=utf-8

上面的是.py文件内我加入这一行就行了,其他文件要不要改变形式不知道。。


ModuleNotFoundError: No module named ‘torchvision.ops’


AssertionError: The NVIDIA driver on your system is too old (found version 10010).

解决办法
注意这个要对镜像操作,参考通用的一些说明(重要)章节
cuda版本与pytorch版本不匹配的问题,详细解决点击下面参考链接,给出查看CUDA版本的方式,在镜像交互界面内完成:

在这里插入图片描述
对于我的CUDA我把以前的torch卸载了,然后安装下面的方法安装的:

pip install torch==1.2.0 torchvision==0.4.0 -f https://download.pytorch.org/whl/torch_stable.html

参考链接1
参考链接2


ValueError: invalid literal for int() with base 8: ‘build_te’
RuntimeError: model_data/yolo4_weights.pth is a zip archive (did you mean to use torch.jit.load()?)
tarfile.ReadError: invalid header
解决办法
这几个error是一起出现的,因为我的与训练的权重是在torch1.6训练的,但是在LiCo是用1.2版本跑的,所以就会这样可以改一行保存权重时的代码:

主要是改变这个参数:_use_new_zipfile_serialization=False

torch.save(model.state_dict(), model_cp,_use_new_zipfile_serialization=False)

参考链接

专家模式下遇到的错误

ERROR: Could not install packages due to an EnvironmentError: [Errno 30] Read-only file system:

解决办法
权限不够,例如 pip install cv2,则改写为:

pip install cv2 --user

参考链接

通用的一些说明(重要)

写在前面

  • 运行的浏览器按照要求最好,不然会出现下面的错误:
    这个图就是在QQ浏览器下,文件管理看不到文件,在提交作业的时候也就这个,看不到文件夹
    在这里插入图片描述
  • 多看.out输出文件 多看.out输出文件 多看.out输出文件 里面会有成功或者错误的类型
  • 发现集群的首页不能显示实时的CPU GPU运转信息,并且作业状态也一直是排队等待(queuing)的状态,这个时候可以进入专家模式输入squeue来查看作业真实的状态(下面有介绍slurm指令)或者看.out文件的内容是否作业完成,如果完成那这个作业是可以取消掉的,因为跑完了,这个是我使用的集群的一点小问题吧。
  • 专家模式的操作需要具有一定的LINUX知识
  • 可以在作业状态中点击ID查看Job Information看信息
  • 在作业运行过程中,可以直接去目录里查看.out文件,或者点击作业名称:

在这里插入图片描述
这样显示的好处是会自动刷新,直接打开.out文件则不会;当然作业运行完的话还是直接去目录打开方便。

slurm命令简介

想了解详情,请参考下面的链接,这里主要给出常用的slurm命令的名称,然后大家可以点击参考链接ctrl+f定位到具体的地方看命令的详细说明
参考链接

命令名称命令说明
squeue显示排队和运行中的作业的作业状态
scontrol show job id显示作业id的详细信息.如果不输入id会默认打印当前正在工作的作业

好吧,我就常用上面俩个现在哈哈哈哈
效果如下:
在这里插入图片描述

下图表示作业ID为137的正在执行
在这里插入图片描述

具体信息请进入参考链接查看(如果失效请百度slurm命令说明之类的)

Singularity创建镜像

说实话我不懂Singularity,但是我瞎猫碰到死耗子成功的制作了自己的Singularity镜像,现把我的步骤记录如下,先给出参考链接:
Singularity入门之通过沙盒创建镜像
Singularity安装和使用
联想Lico+singularity容器制作+anaconda3安装教程
以下步骤全是我的经验操作,仅供参考。读者在借鉴过程中注意操作,如有不当操作或错误,欢迎大家在评论区指出

第一步 创建Singularity运行环境

在这里插入图片描述
在这里插入图片描述
然后验证运行查看是否成功

第二步 下载系统镜像并新建自己的镜像

以pytorch镜像为例下载并保存到一个文件夹内,这里新建并保存到了image文件夹
在这里插入图片描述
下载保存后,可以新建自己的镜像,并且指向该镜像:
在这里插入图片描述
在这里插入图片描述
标签描述自己定义。

第三步 进入专家模式,并进入Singularity镜像交互界面

首先用cd命令到包含镜像的文件夹内,然后输入下面语句:
pytorch.image 是镜像的名称

singularity shell pytorch.image

在这里插入图片描述
然后可以查看python等信息了:
在这里插入图片描述
这个时候可以使用pip命令查看已经安装的库文件和其他,然后根据自己的需要进行下载库(下载慢的话可以切换为清华源),注意在pip安装时,要:
加入–user 不然会报错(第一章有提到过)

pip install cv2 --user

应该也可以进行其他的镜像操作,但是我这里安装python库对我已经够用的,所以就没有探索了,感兴趣可以探索一下。
最后,操作完成后退出singularity镜像:

exit n

然后在新建作业的时候选择自己的镜像就行了;

总结
  • 这个新建Singularity镜像的原理我真的不是太懂,凑合着用吧。。如果有大佬可以详细说明,不胜感激。
  • 管理员可以对新建一些配置好很多常用库的py文件或者其他,例如Jupyter Notebook 什么的 的镜像,这样对于大多数的小白都可以很好的使用
  • 上面的新建例子只是对pytorch镜像进行了一个改进(安装了一些我要使用的库)成为自己的私有库,其他镜像应该有相同的修改方法吧
  • 以上是个人探索过程的经验帖,仅供参考。

Lenovo Accelerated AI部分模块使用

图象分类训练模块使用说明

新建任务

《LiCO 5.5.0用户指南》31页

要注意数据集目录的选取和数据目录内存放的文件格式,可以下载数据集样例先测试一下:
在这里插入图片描述
下载数据集样例后把压缩包上传到云端的文件管理内找个合适的地方解压,然后要注意选取dataset_dir文件夹作为数据集目录,参考这个文件夹内的图片和csv文件的形式去建立自己的数据集进行训练:
在这里插入图片描述
网络结构要选择和图片的大小相符的网络,例如样例中的图片是32 * 32的,这里测试使用的lenet网络也是要求的32 * 32的输入
查看输出

查看输出

在工作空间的文件加下,有.out格式的文件,打开后就可以看到本次训练的结果输出(截取了一部分):
在这里插入图片描述

图象分类预测模块使用说明

新建任务

《LiCO 5.5.0用户指南》39页

需要注意的和分类训练任务的基本相同,注意输出目录将存放结果,训练目录选择的是图象分类训练模块的输出的train_dir文件夹,再选择相对应的网络拓扑结构即可:
在这里插入图片描述

查看输出

还可以从.out文件中查看本次预测的详细信息,在工作空间目录下,不过我看不出来有有用的信息:
在这里插入图片描述
在输出目录中所选的文件夹内,将出现两个文件:
在这里插入图片描述
打开accuracy.txt(仅截取一部分):
在这里插入图片描述
为啥全是0我不是很明白。。。。。。
打开predict_result.txt(仅截取一部分):
在这里插入图片描述可以看到对应图片的预测结果,发现有的结果预测失败,有的成功

标准AI部分模块使用

TensorFlow 单节点作业

新建任务

《LiCO 5.5.0用户指南》79页

把自己写的代码和数据文件夹都解压上传到My_Folder的合适位置,我这里是TesyPy文件内,TesyPy文件夹内应包含的是你在电脑上能跑通代码的所有文件
在这里插入图片描述
run_data文件夹下内容,很多其实是没有用的,对于我的代码,只保留.npy文件和txt标签文件就行了,请根据自己的代码和使用进行保留在电脑上能跑通代码的所有文件
在这里插入图片描述
然后新建任务:
在这里插入图片描述

查看输出

部分.out文件截图:
在这里插入图片描述
可以直接下载保存checkpoint文件在电脑加载训练权重

对于可视化loss曲线的方法
参考 《LiCO 5.5.0用户指南》80页

不过我一直在加载,,没显示出来
过程中遇到错误请参考 遇到的错误(重要)章节 中会有,或者直接ctrl+F开启浏览器的查找关键字,来快速定位到想要的内容,应该能找到

TensorFlow 多节点作业

操作方法同上

Pytorch单节点作业

新建任务

把自己写的代码和数据文件夹都解压上传到My_Folder的合适位置,我这里是YoLov4_task/YoLoNet文件内,YoLoNet文件夹内应包含的是你在电脑上能跑通代码的所有文件

在这里插入图片描述
注意上图中我框出来的容器镜像,这里我选择的是我制作的一个镜像,因为现在在我们使用的系统的PyTorch中的镜像里,有很多python库(例如cv2 pillow等)没有包含,大家可以先测试使用系统的PyTorch镜像看能跑不能,不行的话联系管理员去为系统的PyTorch镜像安装,也可以参考 通用的一些说明(重要)章节去自己新建一个满足自己需要的镜像库。
初次使用过程中可能会遇到很多奇怪的问题。。。。。如果代码没泡成一定要多看.out文件!!!!看错误类型(例如):
在这里插入图片描述
这就是一个没有包含库文件的错误

查看输出

如果代码跑成的话,在.out文件中查看输出信息(截取部分):
在这里插入图片描述
然后就可以下载自己保存的.pth文件到电脑上来预测了

过程中遇到错误请参考 遇到的错误(重要)章节中会有,或者直接ctrl+F开启浏览器的查找关键字,来快速定位到想要的内容,应该能找到

总结

以上是个人经验贴,主要记录了一点在第一次使用LICO时遇到的一点问题和探索的方法,上面提到的一些经验和使用教程供我个人使用好久了可以,但是应该只开发了LICO的一点点功能吧,,希望大家不要受到我的这个的限制,按照自己的需求进行参考和探索以后如果自己又用到别的功能会继续更新。

如有不当操作或错误,疑问等,欢迎大家在评论区指出


今天是2020年10月24日,祝所有程序员节日快乐:D

2020 - 996 = 1024

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐