我正在努力在函数执行后清除内存,我一直在尝试plt.close('all')、Del和gc.collect(),但都没有完成任务
''”
根据cwt系数创建比例图
in:系数: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)
输入:文件路径:(coef,freq,label).npz
'''
def generate_feats(filename):
# extract coefs from file and get scalogram
data = np.load(filename, allow_pickle=True)
coef, freq, 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, freq, label
gc.collect()
# execution:
a=process_map(generate_feats, glob.glob("/workspace/data/conc_data/*.npz"), max_workers=8, smoothing=0.0, chunksize=4)
目前没有回答
相关问题 更多 >
编程相关推荐