【发布时间】:2021-12-25 00:35:17
【问题描述】:
Keras 模型在编译/训练后运行良好:
>>> model.predict(values)
array([[5.28525668e-10, 3.66615766e-12, 2.76005746e-10, ...,
1.06744905e-10, 3.96939370e-09, 1.54998125e-09],
[1.08512407e-17, 1.16371355e-20, 3.40085518e-20, ...,
1.58855026e-15, 3.41645340e-23, 2.22618953e-18],
[8.91928664e-07, 1.51766372e-07, 5.11579383e-05, ...,
2.09874074e-07, 1.08243627e-08, 1.00344047e-03],
...,
[1.48135211e-06, 4.81735299e-07, 7.23933127e-08, ...,
6.75531879e-08, 2.97403737e-08, 5.35680655e-08],
[2.52744006e-12, 1.91630305e-11, 4.30207465e-13, ...,
6.73083234e-09, 1.56778467e-13, 6.92025376e-13],
[2.72180110e-08, 2.60345967e-08, 6.72346505e-05, ...,
1.04813864e-06, 8.22153803e-11, 6.33114814e-06]], dtype=float32)
但是在保存模型并在不同的脚本中加载它之后:
# script 1
model.save('./model')
# script 2:
model = tf.keras.models.load_model(f"./model")
在加载的模型上调用 model.predict() 只返回 NaN 值,在完全相同的输入数据上:
>>> model.predict(values)
array([[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
...,
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan],
[nan, nan, nan, ..., nan, nan, nan]], dtype=float32)
这直到最近都运行良好,但现在突然模型开始表现得像这样。同样,在完全相同的数据上返回脚本 1 工作得非常好,重新启动脚本(1 和 2)并再次保存模型然后再次重新加载并没有任何改进。
- 我检查了保存的模型和加载的模型完全一样
- 我也尝试拨打
loaded_model(values, training=False),但没有成功
知道这里发生了什么以及如何解决这个问题吗?使用 TensorFlow 2.3.4。
【问题讨论】:
-
请分享一个可重现的数据集(至少与 mnist 一起)。还有,要试试用.h5格式保存,是一样的吗?
-
可重现的数据集在这里没有意义,因为它不会发生在您的配置中。这个问题是关于了解可能导致问题的原因,而不是试图重现示例。
标签: python python-3.x tensorflow keras tensorflow2.0