如果您有一个Model实例,那么要考虑损耗相对于输入的梯度,您应该执行以下操作:
grads = K.gradients(loss, model.input)[0]
model.input
包含代表模型输入的符号张量。使用普通的numpy数组是没有意义的,因为TensorFlow然后不知道它如何连接到计算图,并返回None作为梯度。
然后,您还应该将iterate
函数重写为:
iterate = K.function([model.input], [loss, grads])
K.gradients(loss,input_img)[0]返回“无”。(带有Tensorflow后端的Keras CNN可视化)
如果您有一个Model实例,那么要考虑损耗相对于输入的梯度,您应该执行以下操作:
grads = K.gradients(loss, model.input)[0]
model.input
包含代表模型输入的符号张量。使用普通的numpy数组是没有意义的,因为TensorFlow然后不知道它如何连接到计算图,并返回None作为梯度。
然后,您还应该将iterate
函数重写为:
iterate = K.function([model.input], [loss, grads])