使用稀疏数据训练Keras神经网络

时间:2016-10-11 12:42:39

标签: machine-learning neural-network keras

我正在尝试使用Keras训练神经网络。 我的训练集由数百万个稀疏向量组成。

为了进行训练,我使用了model.fit()函数:

model.fit(X_train, y_train, ...)

但是,fit()对密集数据进行操作。因此,为了使其工作 - 在向网络馈送矢量之前 - 我将它们转换为密集矢量。

问题是转换后数据变得太大而不再适合RAM。

我知道我可以使用batch_generator来为网络提供大量数据。但是,当我这样做时,我得到的结果(在测试集上)比仅在{strong>部分数据上没有batch_generator的情况下运行更糟糕(因此它确实适合RAM)。

我的问题是:有没有办法训练具有稀疏矢量的Keras神经网络,而不将它们转换为密集的?

1 个答案:

答案 0 :(得分:0)

如果您能够使用Lasagne代替Keras,您可以查看this Multilayer Perceptron class,它非常易于配置且易于理解。

支持密集和稀疏矩阵

支持辍学和隐藏图层

支持完整的概率分布而不是单热标签,因此支持多标签培训。

支持像API一样学习scikit(适合,预测,准确等)

配置和修改非常简单