【问题标题】:About tf.gradients is not supported when eager execution is enabled关于启用 Eager Execution 时不支持 tf.gradients
【发布时间】:2021-03-02 09:10:40
【问题描述】:

当我尝试从 Tensorflow 2.0 的 Python 深度学习一书中实现示例时。我遇到了一个错误,告诉我:RuntimeError: 启用急切执行时不支持 tf.gradients。请改用 tf.GradientTape。

def generate_pattern(layer_name, filter_index, size=150):
layer_output = model.get_layer(layer_name).output
loss = K.mean(layer_output[:, :, :, filter_index])

grads = K.gradients(loss, model.input)[0]

grads /= (K.sqrt(K.mean(K.square(grads))) + 1e-5)

iterate = K.function([model.input], [loss, grads])

input_img_data = np.random.random((1, size, size, 3)) * 20 + 128.

step = 1.
for i in range(40):
    loss_value, grads_value = iterate([input_img_data])
    input_img_data += grads_value * step

img = input_img_data[0]
return deprocess_image(img)

【问题讨论】:

标签: python tensorflow keras gradient


【解决方案1】:

幸运的是,我找到了避免这个问题的方法。只需在示例前添加如下代码即可解决。

import tensorflow as tf
tf.compat.v1.disable_eager_execution()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 2020-02-16
    • 1970-01-01
    • 2020-02-23
    • 2023-03-13
    • 2019-02-13
    • 1970-01-01
    相关资源
    最近更新 更多