简体   繁体   English

使用 Keras+tensorflow 计算梯度输入时出错

[英]Error computing gradients wrt input with Keras+tensorflow

I'm trying to get the gradients wrt input for my model:我正在尝试为我的 model 获取渐变 wrt 输入:

input_mat = np.random.rand(1,252,252,1)
with tf.Session() as sess:
    input_tensor = tf.placeholder(shape=input_mat.shape,dtype=tf.float32)
    outmat = tf.convert_to_tensor(np.dstack((np.identity(252)[:,:,np.newaxis],np.zeros((252,252,36))))[np.newaxis,:,:,:])
    input_layer = tf.keras.layers.Input(shape=(252,252,1))
    layer = tf.keras.layers.Conv2D(activation='relu',kernel_size=(3,3),filters=37,padding='same')(input_layer)
    m = tf.keras.Model(input_layer,layer)

    prob_dist = m(input_tensor)

    loss_dist = tf.keras.losses.categorical_crossentropy(y_pred=prob_dist,y_true=outmat,from_logits=True)      
    grads = K.gradients(loss_dist,m.input)  
    sess.run(tf.global_variables_initializer())
    y = sess.run(grads, feed_dict={input_tensor:input_mat})
            

However, I'm getting the following error:但是,我收到以下错误:

TypeError: Fetch argument None has invalid type <class 'NoneType'>

Apparently, the gradient appears to be None.显然,梯度似乎是无。 How can I fix it?我该如何解决?

Compute your gradient against the tf.Placeholder :根据tf.Placeholder计算梯度:

grads = K.gradients(loss_dist,input_tensor)  

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在 Tensorflow 急切模式下计算梯度与模型输入 - Computing gradients wrt model inputs in Tensorflow eager mode 使用Keras + Tensorflow训练ConvNet时出现不兼容的形状错误 - Incompatible shapes error while training ConvNet using Keras+Tensorflow 在 Keras 中计算多输出模型的梯度以转换为 Tensorflow DType 错误 - Computing gradients of a multi-output model in Keras giving conversion to Tensorflow DType error Keras + tensorflow批处理图像分类 - Keras+tensorflow batch image classification 有没有更快的方法来计算 keras/tensorflow(图形模式)中 output wrt 输入的梯度? - Is there a faster way to compute gradients of output wrt inputs in keras/tensorflow (graph mode)? 在TensorFlow中计算图上的梯度不会导致类型提取错误 - Computing gradients on a graph in TensorFlow gives none type fetching error 使用 Keras Tensorflow 2.0 获取梯度 - Get Gradients with Keras Tensorflow 2.0 TensorFlow/Keras 中的错误:ValueError:没有为任何变量提供梯度 - Error in TensorFlow/Keras: ValueError: No gradients provided for any variable Keras梯度WRT输入可用于多个输出尺寸 - Keras gradient wrt input for multiple output dimensions 没有提供梯度 Tensorflow Keras 和自定义训练步骤 - No gradients provided Tensorflow Keras with custom Training Step
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM