首页 > 解决方案 > 当我将这两个部分一起运行时,会出现“触发的 tf.function retracing”警告,这是为什么呢?

问题描述

这段代码定义了一个用于测试的微型 cnn 模型

import tensorflow as tf
model = tf.keras.models.Sequential([
  tf.keras.layers.Conv2D(filters=1, kernel_size=(2, 2))
])

我在 Jupyter Notebook 单元中运行了5 次,一切顺利。

以下代码使用上面定义的模型进行预测。

x = tf.cast(tf.reshape(tf.range(9), (1,3,3,1)), tf.float32)
model.predict(x)

我在另一个Jupyter Notebook 单元中运行了5 次,一切顺利。

然后,令人困惑的部分就出来了。当我在一个Jupyter Notebook 单元中同时运行上面的两段代码 4 次时,我收到了这个错误

警告:tensorflow:在最后 9 次调用中,有 5 次调用 <function Model.make_predict_function..predict_function at 0x156a78f28> 触发了 tf.function 回溯...

我知道做什么@tf.function,我已经通过https://www.tensorflow.org/guide/function#controlling_retracinghttps://www.tensorflow.org/api_docs/python/tf/function

我想这条线可能是原因

model.predict(x)

我只是想知道为什么只有当我将这两个部分一起运行时,警告才会出现?

标签: pythonjupyter-notebooktensor

解决方案


推荐阅读