Memory leaks 在Keras中使用自定义生成器时内存泄漏

Memory leaks 在Keras中使用自定义生成器时内存泄漏,memory-leaks,keras,Memory Leaks,Keras,我的问题是内存泄漏。注意:“GPU内存没有问题。” 环境: 使用Theano后端。 在Ubuntu 16.04上,Keras==1.1.1,Theano==0.9.0。 16GB RAM和交换。 GPU:GTX1080 对于多输出,培训时的代码由自己设计。 查看以下功能和培训代码 功能: def customGenerator(X,Y1,Y2): while True: idx = np.random.permutation(X.shape[0]) dat

我的问题是内存泄漏。注意:“GPU内存没有问题。”

环境:

使用Theano后端。
在Ubuntu 16.04上,Keras==1.1.1,Theano==0.9.0。
16GB RAM和交换。
GPU:GTX1080

对于多输出,培训时的代码由自己设计。
查看以下功能和培训代码

功能:

def customGenerator(X,Y1,Y2):
    while True:
        idx = np.random.permutation(X.shape[0])
        datagen = ImageDataGenerator(rescale=1./255)
        batches = datagen.flow( X[idx], batch_size=32, shuffle=False)
        labels = [Y1[idx],Y2[idx]]
        idx0 = 0
        for batch in batches:
            idx1 = idx0 + batch.shape[0]
            yield batch, [labels[0][idx0:idx1],labels[1][idx0:idx1]]
            idx0 = idx1
            if idx1 >= X.shape[0]
                break
培训代码:

model.fit_generator(customGenerator(X_train,Y_train,Y_train2),
                    samples_per_epoch=X_train.shape[0]
                    nb_epoch=nb_epoch,
                    validation_data=customGenerator(X_val,Y_val,Y_val2),
                    nb_val_samples=X_val.shape[0],
                    verbose=1)
训练网络时,它进行了6个阶段,并导致内存错误。
对记忆状态的观察表明,记忆使用率随着时代的发展而增加

我认为自定义函数有问题,但我找不到问题所在


您能帮助我吗?

为什么您的Y标签在np数组列表中?在这个列表中?-->labels=[Y1[idx],Y2[idx]]这是我的hobit。这当然不是必需的。不,在yield中,您返回两个数组的列表。。。数组不能连接起来。我有两种标签。这就是我使用多输出模型的原因。好的,我相信问题在于使用
ImageDataGenerator
,您正在使用它作为生成器中的生成器。你为什么不直接用它来做这个游戏呢??