【问题标题】:Error computing gradients wrt input with Keras+tensorflow使用 Keras+tensorflow 计算梯度输入时出错
【发布时间】:2021-04-01 20:28:42
【问题描述】:

我正在尝试为我的模型获取渐变输入:

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})
            

但是,我收到以下错误:

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

显然,渐变似乎是无。 我该如何解决?

【问题讨论】:

    标签: python tensorflow keras deep-learning


    【解决方案1】:

    根据tf.Placeholder 计算你的梯度:

    grads = K.gradients(loss_dist,input_tensor)  
    

    【讨论】:

      猜你喜欢
      • 2021-05-22
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 2020-03-27
      • 2020-12-24
      • 1970-01-01
      相关资源
      最近更新 更多