问题描述
我正在努力在函数执行后清除内存,我一直在尝试 plt.close('all')、Del 和 gc.collect() 但没有完成工作。
'''
从 cwt 系数创建标度图
在:系数:numpy数组
出:三个 chanell 图像:numpy 数组
'''
def get_scalogram(coef,show = False):
# create scalogram figure
fig = plt.figure()
ax1 = fig.add_subplot()
ax1.imshow(abs(coef),interpolation = 'bilinear',cmap='jet',aspect='auto');
plt.gca().invert_yaxis();
fig.tight_layout(pad=False)
plt.axis('off');
# convert scalogram to np array
fig.canvas.draw()
data = np.frombuffer(fig.canvas.tostring_rgb(),dtype=np.uint8)
data = data.reshape(fig.canvas.get_width_height()[::-1] + (3,))
if show:
fig.show()
# clean
plt.close('all');
del fig
gc.collect()
return data
'''
遍历文件列表并生成标度图
(保存新的压缩文件:(图像,标签)。npz)
in: 文件路径: (coef,freq,label).npz
'''
def generate_feats(filename):
# extract coefs from file and get scalogram
data = np.load(filename,allow_pickle=True)
coef,label = data['arr_0'],data['arr_1'],data['arr_2']
image = get_scalogram(coef)
# save
filename = filename.replace("conc_data","scalogram") # -> change dir
filename = filename.replace(".wav.npz","")
np.savez_compressed(filename+"_scalogram"+'.npz',image,label)
# clean
del image
del data,coef,label
gc.collect()
# execution:
a=process_map(generate_feats,glob.glob("/workspace/data/conc_data/*.npz"),max_workers=8,smoothing=0.0,chunksize=4)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)