我需要计算存储的张量流的梯度。我可以使用以下方法恢复图形和权重:
model1 = tf.train.import_meta_graph("models/model.meta")
model1.restore(sess, tf.train.latest_checkpoint("models/"))
sess.run(tf.global_variables_initializer())
graph = tf.get_default_graph()
weights = graph.get_tensor_by_name("weights:0")
biases = graph.get_tensor_by_name("biases:0")
我还在原始函数中命名了损失函数,因此我可以使用
来恢复它 loss = graph.get_operation_by_name("loss") # for operation
loss = graph.get_tensor_by_name("loss:0") # for the tensor
基本上,我想使用tf.gradients(...)获得具有特定输入值的损耗的梯度。我的损失特别是nce_loss
https://www.tensorflow.org/api_docs/python/tf/nn/nce_loss。我想要给定输入函数的损耗梯度。具体来说,我插入了一个新的嵌入,并且由于新的输入和损失函数,我想要渐变。但是我似乎无法成功定义输入。如果我使用:
grads = tf.gradients(loss, loss.inputs) #here I use the tensor loss definition
我得到:
ValueError: Name 'loss:0' appears to refer to a Tensor, not a Operation.
如何在此处定义渐变?