tensorflow 2.0的K.梯度的对应函数是什么?

tensorflow 2.0的K.梯度的对应函数是什么?,tensorflow,keras,tf.keras,Tensorflow,Keras,Tf.keras,我想用tensorflow2.0可视化分类结果。对于keras,cam需要以下代码: import tensorflow as tf import keras.backend as K from tensorflow.keras.applications.vgg16 import VGG16 from tensorflow.keras.preprocessing import image from tensorflow.keras.applications.vgg16 import prepro

我想用tensorflow2.0可视化分类结果。对于keras,cam需要以下代码:

import tensorflow as tf
import keras.backend as K
from tensorflow.keras.applications.vgg16 import VGG16
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.vgg16 import preprocess_input, decodpredictions
import numpy as np
import cv2

img_path = 'image/test.jpg'

model = VGG16(weights='imagenet')
img = image.load_img('image/test.jpg', target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
preds = model.predict(x)
print('Predicted:', decode_predictions(preds, top=3)[0])
print np.argmax(preds[0])
african_elephant_output = model.output[:, 386]
last_conv_layer = model.get_layer('block5_conv3')
grads = K.gradients(african_elephant_output, last_conv_layer.output)[0]
但当我使用tensorflow2.0时,似乎没有这样的梯度函数。那么tensorflow2.0的
K.gradients
对应的函数是什么呢

import keras.backend as K
from tensorflow.keras.applications.vgg16 import VGG16
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.vgg16 import preprocess_input, decodpredictions
您正在混合
keras
tf.keras
包,它们彼此不兼容。您应该从
tf.keras
导入后端:

import tensorflow.keras.backend as K

您得到的实际错误是什么?TypeError:gradients_v2()得到一个意外的关键字参数“colocate_gradients_with_ops”@Matias Valdene你用keras还是tf.keras?因为普通Keras与Tensorflow 2.0 alpha/beta不兼容。我正在使用Keras。但是tf.keras也会出错。我已经更新了我的问题并添加了更多的代码。它似乎不起作用:
RuntimeError:tf.gradients在启用了急切执行时不受支持。改用tf.GradientTape。
@tidy我建议不要使用TensorFlow 2.0,因为它仍然是测试版,仍然有很多bug。好的,谢谢你的帮助@Matias Valdenegro。我试试TensorFlow1.x。