linux环境下经常内存溢出的一种解决办法

首先说一下,内存经常溢出,爆内存不一定是因为batch_size过大,也有可能是模型没有加载上。弄了一天才把这个问题解决

问题:
我在使用paddlehub的下面这段函数时,经常爆内存

paddlehub.Module(name='deeplabv3p_xception65_humanseg')

简单说一下过程

 //我先用humanseg加载模型,这个deeplabv3p_xception65_humanseg
 //模型如果Linux环境未安装,则自动安装
 humanseg = paddlehub.Module(name='deeplabv3p_xception65_humanseg')
 //开始遍历frames下面的所有图片
 files = [frames + i for i in os.listdir(frames)]
 //开始抠图
 humanseg.segmentation(data={'image': files})  # 抠图

其实在这里,我就开始内存飙升,而且程序直接被killed掉

 humanseg = paddlehub.Module(name='deeplabv3p_xception65_humanseg')

我就当时在想是不是batch_size是不是过大。这时候我就又开始只扣一张图片,不是扣一个视频。可是依然不行,我这时候就思考是不是.paddlehub下面的deeplabv3p_xception65_humanseg模型没有加载成功。
这时候我就把我电脑里这个模型打包成zip上传到linux环境下,然后解压到指定位置,再运行一次程序果然成功了
提示:

 [ INFO] - 0 pretrained paramaters loaded by PaddleHub

所以我们在排除问题的时候,其实有时候并不是内存溢出错误,也有可能没有加载对的模型。只要我们把正确可运行的模型复制到不可运行的那里,即可完成程序的运行

下面放一点Linux环境下的可能用到的命令干货:

1.解压压缩zip文件
//解压
//   /home/aistudio/data/文件夹下面有一个.paddlehub.zip压缩包
// 解压至 /home/aistudio
//tip:一定要是绝对路径,相对路径我试了,好像并没有什么用
unzip /home/aistudio/data/.paddlehub.zip -d /home/aistudio
//压缩
// 压缩后的zip名字:output.zip
//您要压缩的文件名字folder1 可以是相对路径
zip -r output.zip file1 humanseg_output

你可能感兴趣的:(Python,python,linux)