Мне нужно рассчитать градиент тензорного потока, который сохраняется.Я могу восстановить график и веса, используя:
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.
Как мне определить мой градиент здесь?