GPU在theano后端使用keras执行缓慢

时间:2016-08-12 22:11:02

标签: python performance theano keras theano-cuda

我跟随自动编码器示例@ https://blog.keras.io/building-autoencoders-in-keras.html但使用我自己的数据。我的GPU利用率非常低,几乎没有GPU内存利用率。

我想知道它是否只是难以在GPU上安装批次。我的输入数据是5k维,我将其编码为250维的隐藏表示。当我将自动编码器的批量大小降低到1时,我的GPU使用率会提高,但显然速度很慢(大量的数据混乱)。但是当我走得更高时,我几乎没有使用GPU,而且它仍然非常慢(并且比CPU加速慢;在GPU上看到的最低值是3.5k秒而CPU为1.8k秒)。我的GPU是GTX 970,一切看起来都很好用。

#input and hidden dimension parameters
input_dimensions = Input(shape=(5000,))
encoded_dimensions = 250

#build autoencoder model
encoded = Dense(encoded_dimensions, activation='relu')(input_dimensions)
decoded = Dense(5000, activation='sigmoid')(encoded)
autoencoder = Model(input=input_dimensions, output=decoded)

#build encoder model
encoder = Model(input=input_dimensions, output=encoded)

#build decoder model
encoded_input = Input(shape=(encoded_dimensions,))
decoder_layer = autoencoder.layers[-1]
decoder = Model(input=encoded_input, output=decoder_layer(encoded_input))

autoencoder.compile(optimizer='adadelta', loss = 'mae')
autoencoder.fit(data, data, nb_epoch = 10, batch_size=512, shuffle=True, validation_split=0.1)

我的代码是否存在导致其运行缓慢的问题,或者可能是一些奇怪的配置问题(我的.theanorc,因为它的价值,配置用于GPU和theano报告利用GPU),还是我的数据功能?

0 个答案:

没有答案