我已经建立了一个非常简单的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是一个复制问题的笔记本
尝试用这种方式重新定义GradientTape中的预测操作
相关问题 更多 >
编程相关推荐