Невозможно восстановить Dropout, используя get_tensor_by_name - PullRequest
0 голосов
/ 07 октября 2019

Я пытался сохранить и восстановить некоторые тензоры.

В сеансе сохранения:

...
self.abc = tf.reduce_sum(self.element_wise_product, 2, name="abc")
self.def= tf.nn.dropout(abc, self.dropout_keep[0], name="def")
... 

После сохранения я попытался восстановить сеанс

sess = tf.Session(config=config)
weight_saver.restore(sess, save_file)

pretrain_graph = tf.get_default_graph()
abc= pretrain_graph.get_tensor_by_name('abc:0')
def = pretrain_graph.get_tensor_by_name('def:0')

Но я получил ошибку:

"Имя def: 0" относится к несуществующему тензору. Операция def не существует в графе. "

Пожалуйста, помогите.

1 Ответ

1 голос
/ 07 октября 2019

Проблема в том, что tf.nn.dropout(abc, self.dropout_keep[0], name="def") - это операция Tensorflow, а не узел в графе, который вы можете восстановить как таковой.

Кроме того, я бы восстановил узлы в графе, которые я хочу выполнить, дляНапример, узел logits, чтобы я мог получить выходные данные модели, и узлы input, чтобы я мог залить данные в модель. Поэтому я не вижу причин для восстановления узла dropout.

...