谢谢,每个人都试图帮助我理解下面的问题。我已经更新了问题并生成了仅 CPU运行和仅 GPU运行。一般来说,在任何一种情况下,直接numpy计算似乎也比model. predict(). 希望这说明这似乎不是CPU与GPU 的问题(如果是,我希望得到解释)。
让我们用 keras 创建一个训练有素的模型。
import tensorflow as tf
(X,Y),(Xt,Yt) = tf.keras.datasets.mnist.load_data()
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(1000,'relu'),
tf.keras.layers.Dense(100,'relu'),
tf.keras.layers.Dense(10,'softmax'),
])
model.compile('adam','sparse_categorical_crossentropy')
model.fit(X,Y,epochs=20,batch_size=1024)
Run Code Online (Sandbox Code Playgroud)
现在让我们model.predict使用重新创建函数numpy。
import numpy as np
W = model.get_weights()
def predict(X):
X = X.reshape((X.shape[0],-1)) #Flatten
X = X @ W[0] + W[1] #Dense
X[X<0] = 0 #Relu
X = X @ W[2] + W[3] #Dense
X[X<0] = 0 #Relu …Run Code Online (Sandbox Code Playgroud)