Python keras model.predict()速度较慢

Python keras model.predict()速度较慢,python,keras,Python,Keras,我试图通过解决异或问题来创建感知器输出的热图,但 model.predict (np.array ([[i / 255, i2 / 255]])) 生成地图需要很长时间。 我怎样才能跑得更快 生成模型的代码 from keras.models import Sequential from keras.layers.core import Dense, Dropout, Activation from keras.optimizers import SGD import numpy as np

我试图通过解决异或问题来创建感知器输出的热图,但

model.predict (np.array ([[i / 255, i2 / 255]]))
生成地图需要很长时间。 我怎样才能跑得更快

生成模型的代码

from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.optimizers import SGD
import numpy as np 
import matplotlib.pyplot as plt
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.optimizers import SGD
import numpy as np 

#X son los datos de entrada
#y son la salida correpondiente a cada entrada
X = np.array([[0,0],[0,1],[1,0],[1,1]])
y = np.array([[0],[1],[1],[0]])

model = Sequential()
model.add(Dense(8, input_dim=2))
model.add(Activation('tanh'))
model.add(Dense(1))
model.add(Activation('sigmoid'))

sgd = SGD(lr=0.1)
model.compile(loss='binary_crossentropy', optimizer=sgd)

model.fit(X, y, batch_size=1, nb_epoch=1000)
用于绘制问题xor的输出热图的代码

from PIL import Image

img = Image.new('RGB', (320, 280))
pixels = img.load()
for i2 in range(255):
    for i in range(255):
       g=model.predict(np.array([[i/255,i2/255]]))
       pixels[i,i2] = (0,g*255,0)
plt.imshow(img)

问题是,您对单个向量调用了
model.predict()
65536次。这是相当低效的。预先计算输入向量,然后只运行一次预测。在我的机器上需要2秒钟

x = np.linspace(0,1,256)
img = list()
for i in range(256):
    for j in range(256):
        img.append([x[j],x[i]])
pred=model.predict(np.array(img),verbose=1)
plt.imshow(pred.reshape((256,256)))
plt.colorbar()
plt.show()