keras model.predict()速度较慢

2024-05-15 00:40:40 发布

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

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

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)

Tags: fromimportaddimgmodelasnparray
1条回答
网友
1楼 · 发布于 2024-05-15 00:40:40

问题是,您正在为单个向量调用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()

相关问题 更多 >

    热门问题