GPU在ano后端使用keras运行缓慢

2024-04-25 21:00:07 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我想知道它是否只是在GPU上安装批次有问题。我的输入数据是5k维,我将其编码为250维的隐藏表示。当我把我的自动编码器的批量大小改为一个时,我得到了更高的GPU使用率,但显然相当慢(大量的数据混乱)。但当我再高一点的时候,我几乎没有GPU的使用率,而且它仍然很慢(而且比CPU加速慢;我在GPU上看到的最低值是3.5k秒,而CPU上是1.8k秒)。我的GPU是一个gtx970,一切看起来都很好。在

#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配置的,并且是利用GPU的ano报告),或者这是我的数据的函数?在


Tags: 数据buildinputoutputmodelgpu利用率编码器