为什么keras神经网络如此之慢?

时间:2017-03-25 12:18:04

标签: python neural-network cpu theano keras

我在theano后端安装了keras并尝试从中训练一些网络 https://blog.thoughtram.io/machine-learning/2016/11/02/understanding-XOR-with-keras-and-tensorlow.html 我现在正在使用CPU。

import numpy as np
from keras.models import Sequential
from keras.layers.core import Dense
import time

# the four different states of the XOR gate
training_data = np.array([[0,0],[0,1],[1,0],[1,1]], "float32") #line 1
#training_data = np.random.random((10000, 2)) #line2

# the four expected results in the same order
target_data = np.array([[0],[1],[1],[0]], "float32") #line3
#target_data = np.random.random((10000, 1))  #line4

model = Sequential()
model.add(Dense(16, input_dim=2, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='mean_squared_error',
              optimizer='adam',
              metrics=['binary_accuracy'])

start = time.time()
model.fit(training_data, target_data, nb_epoch=500, verbose=0)
print "time: " + str(time.time() - start)

print model.predict(training_data).round()

取消注释line1line3,我得到了

time: 2.50199985504

在这个结果之后,我认为我应该使用更大的训练集,因为numpy针对大型数组进行了优化,但是

取消注释line2line4后,我

time: 186.332000017

我使用theano而没有keras的结果相同。 为什么keras和theano在我的代码中这么慢或者有什么问题?

0 个答案:

没有答案