Keras 中的 model(x) 和 model.predict(x) 之间的区别?

Leo*_*zza 14 python keras tensorflow

在 Keras 中使用model(x)model.predict(x)预测模型的结果有什么区别?

小智 26

带有 tensorflow 后端的 Keras 使用底层的 tensorflow 对象,但主要是提供可以在 tensorflow 环境之外理解的高级输出(例如,它可以输出 numpy 数组或 python 列表)。
今天给出了 tensorflow 2.0 中的模型(使用 keras 库构建),

out_np = model.predict(x)
Run Code Online (Sandbox Code Playgroud)

提供了一个 numpy 数组,例如,可以用print(out_np).
另一方面,

out_tf = model(x)
Run Code Online (Sandbox Code Playgroud)

结果转换为 tensorflow 对象,可以转换为 numpy 数组,.numpy()
这两个结果是等价的,例如,我们有以下为 True,

out_np.max() == out_tf.numpy().max()
Run Code Online (Sandbox Code Playgroud)

的格式可以是不同的,但含义model(x)model.predict(x)是相同的:
给定一个输入x,它的特点是其结构,重量和偏见一个网络的输出节点的值。