如何解决内存使用 matplotlib - 如何清理内存?
我正在努力在函数执行后清除内存,我一直在尝试 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 举报,一经查实,本站将立刻删除。