GradientTape中的简单Keras网络:LookupError:没有为操作“IteratorGetNext”(op类型:IteratorGetNext)定义梯度

2024-10-02 12:27:50 发布

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

我已经建立了一个非常简单的TensorFlow Keras模型,模型中只有一个致密层。它在GradientTape块外工作得非常好,但在GradientTape块内它会引发LookupError: No gradient defined for operation 'IteratorGetNext' (op type: IteratorGetNext)

要复制的代码:

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
import tensorflow as tf
import numpy as np

print(tf.__version__)

model = Sequential()
model.add(Dense(1, input_shape=(16,)))

fake_data = np.random.random((1, 16))

print(model.predict(fake_data).shape) # works
with tf.GradientTape() as tape:
    print(model.predict(fake_data).shape) # LookupError: No gradient defined for operation 'IteratorGetNext' (op type: IteratorGetNext)

这似乎适用于TensorFlow 2.0.0,但在TensorFlow 2.1.0和2.2.0中失败

Here是一个复制问题的笔记本


Tags: no模型importdatamodeltftensorflowas

热门问题