如何使用Keras中的model.fit_generator使自定义数据生成器利用所有cpu内核

时间:2019-04-03 15:00:49

标签: python-3.x tensorflow machine-learning keras generator

对。因此,我正在研究有关使用机器学习的音频的问题。我的数据集非常大,不适合我的ram。因此,我想为它制作一个自定义音频数据生成器,然后将其传递给Keras的model.fit_generator

但是,我不确定如何将数据准确传递到fit_generator

另一个问题是,函数dataset_creator_PP在CPU时间方面非常昂贵,以至于会阻塞我的GPU。 Keras的fit_generator()能以某种方式并行化我的批处理吗?如果是这样,怎么办?还是我需要使用多重处理来解决该问题?我是否应该从函数中删除batch_size参数,而一次使其仅产生1个文件。如果是这样,那么谁来跟踪所有/尚未用于培训的文件?

注意:您可能会发现一些有用的信息- all_files:训练样本(train_X)的所有文件名都在path_c1中。输出文件(train_y)在path_c2中具有相同的文件名 dataset_creator_PP打开这些文件,然后对其进行一些繁重的预处理。

感谢您抽出宝贵的时间阅读并希望分享此问题的答案。

请在下面找到代码

我的生成器功能

def audio_datagen(all_files, batch_size, path_c1, path_c2, sr, nfft, hop_len, mfcc_coefs):
    while True:
        # initialize batches of data:
        counter = 0
        stft_c1, stft_c2 = dataset_creator_PP(path_c1, path_c2, sr, nfft, hop_len,
                                              mfcc_coefs, all_files[(counter+0):(counter+batch_size)])

        counter += batch_size

        yeild stft_c2, stft_c1

0 个答案:

没有答案