Python 使用Keras+;张量流
我正在尝试为我的模型获取渐变wrt输入:Python 使用Keras+;张量流,python,tensorflow,keras,deep-learning,Python,Tensorflow,Keras,Deep Learning,我正在尝试为我的模型获取渐变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((
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'>
TypeError:Fetch参数None的类型无效
显然,梯度似乎没有。
如何修复它?根据
tf.占位符计算渐变:
grads = K.gradients(loss_dist,input_tensor)