赞
踩
我很难理解GPU和CPU速度与小尺寸网络(CPU有时更快)相似的原因,而GPU更快更大尺寸的网络。问题底部的代码在i7-6700k上以103.7s运行,但是当使用tensorflow-gpu时,代码运行时间为29.5秒。然而,当我训练一个拥有100个隐藏神经元的网络时,而不是像下面的例子那样使用1000,我使用GPU时约20秒,使用CPU约15秒。在训练某些网络时,Keras(Tensorflow后端)在GPU上比在CPU上慢CPU
我读过CPU-> GPU传输需要很长时间的另一个堆栈溢出答案,我假设这是参考在GPU上加载数据示例。
有人可以解释为什么会出现这种情况,并且可能引用了一些可以使速度最大化的代码更改?
import numpy as np
import tensorflow as tf
import keras
from keras.models import Sequential
from keras.utils import np_utils
from keras.layers.core import Dense, Activation, Flatten, Dropout
from sklearn.preprocessing import normalize
## Importing the MNIST dataset using Keras
from keras.datasets import mnist
(X_train, y_train), (X_test, y_test) = mnist.load_data()
# reshape for vector input
N, x, y = X_train.shape
X_train = normalize(np.reshape(X_train, (N, x * y)))
N, x, y = X_test.shape
X_test = normalize(np.reshape(X_test, (N, x * y)))
# one-hot encoding
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)
model = Sequential()
model.add(Dense(output_dim=750, input_dim=784))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(150))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(50))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(50))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(10))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='Nadam', metrics=['accuracy'])
fit = model.fit(X_train, y_train, batch_size=128, nb_epoch=10, verbose=0)
## Printing the accuracy of our model, according to the loss function specified in model.compile above
score = model.evaluate(X_test, y_test, verbose=0)
print('Test score:', score[0])
print('Test accuracy:', score[1])
+1
您使用的是什么GPU?请注意,要完全饱和顶级GPU,需要数以万计的线程。假设每个线程处理一个神经元的计算,一个具有100个神经元的系统将没有充分利用GPU。相反,如果要将神经元数量增加到10K,那么GPU相对于CPU的相对优势可能会进一步增加。 –
+0
哎呀,完全忘记了在答案中包含这一点。我有一个GTX 1070.我明白了。这是有道理的 –
+0
我实际上注意到我的GTX 1070 GPU上的相同行为。我没有看到在CPU(i7-7700)和GPU上运行我的模型(与您使用的尺寸类似)。需要尝试增加网络评估差异的能力 –
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。