嗨,我試圖重現此鏈接 Keras CNN Cheexpert的結果
RuntimeError: tf.gradients is not supported when eager execution is enabled. Use tf.GradientTape instead我在運行這行代碼時遇到了這個錯誤
grads = K.gradients(class_output, last_conv_layer.output)[0]
但是,當我更改為這行代碼時
grads = tf.GradientTape(class_output, last_conv_layer.output)[0]
我收到此錯誤“----> 2 grads = tf.GradientTape(class_output, last_conv_layer.output)[0] TypeError: 'GradientTape' object is not subscriptable”。
如果有人可以指導我糾正這個問題,我將不勝感激。
下面是代碼片段
# get the first image of the testing dataset
x = test_generator[0][0]
preds = model.predict(x)
preds = y_pred_keras[1,:]
class_idx = np.argmax(preds)
class_output = model.output[:, class_idx]
#import the last convolutional layer of the model, this depends on the model
last_conv_layer = model.get_layer("conv5_block16_concat")
# grads = K.gradients(class_output, last_conv_layer.output)[0]
grads = tf.GradientTape(class_output, last_conv_layer.output)[0]
pooled_grads = K.mean(grads, axis=(0, 1, 2))
iterate = K.function([model.input], [pooled_grads, last_conv_layer.output[0]])
pooled_grads_value, conv_layer_output_value = iterate([x])
for i in range(1024):
conv_layer_output_value[:, :, i] *= pooled_grads_value[i]
uj5u.com熱心網友回復:
因此,我設法通過這兩個鏈接找到了解決和實作 gradCAM 的 tensorflow v2 代碼的指南。希望它可以幫助任何面臨同樣問題的人。
Pyimage GradCam
如何在訓練有素的網路上實施 Grad-CAM
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/479257.html
標籤:python-3.x 张量流 喀拉斯 计算机视觉 卷积神经网络
