NotFoundError: при использовании TF возникает ключевая переменная, не найденная в контрольной точке
Я новичок на TF, поэтому я столкнулся с простой проблемой.. Я не могу найти решение моей проблемы в Google..
Я читал и интересовался translate.py в tenorflow, используя Seq2SeqModel.
и я хочу использовать две модели seq2seq (BotEngine, GrammarGenerator) с использованием translate.py, который используется в учебном коде TF, например так.
with tf.Session() as sess:
with tf.variable_scope("be_model"):
model_be = BotEngine.create_model(sess, True)
print("be model created")
with tf.variable_scope("gg_model"):
model_gg = GrammarGenerator.create_model(sess, True)
print("gg model created")
когда я обучил и протестировал (после прочтения файла контрольных точек) две модели соответственно, ни одной ошибки не произошло. но когда я последовательно читаю файл двух контрольных точек, возникает следующая ошибка...
(тензор потока) C:\test>python разговор.py --conversation 2017-10-05 14:43:52.150316: W c:\l\ensorflow_1501907206084\work\tenorflow-1.2. 1\tenorflow\core\platform\cpu_feature_guard.cc:45] Библиотека TensorFlow не была скомпилирована для использования инструкций SSE, но они доступны на вашем компьютере и могут ускорить вычисления ЦП. 2017-10-05 14:43:52.150316: W c:\l\tenorflow_1501907206084 \ work \ensorflow-1.2. 1\tenorflow\core\platform\cpu_feature_guard.cc:45] Библиотека TensorFlow не была скомпилирована для использования инструкций SSE2, но они доступны на вашем компьютере и могут ускорить вычисления ЦП. 2017-10-05 14:43:52.150316: W c:\l\tenorflow_1501907206084 \ work \ensorflow-1.2. 1\tenorflow\core\platform\cpu_feature_guard.cc:45] Библиотека TensorFlow не была скомпилирована для использования инструкций SSE3, но они доступны на вашем компьютере и могут ускорить вычисления ЦП. 2017-10-05 14:43:52.150316: W c:\l\tenorflow_1501907206084 \ work \ensorflow-1.2. 1\tenorflow\core\platform\cpu_feature_guard.cc:45] Библиотека TensorFlow не была скомпилирована для использования инструкций SSE4.1, но они доступны на вашей машине и могут ускорить вычисления ЦП. 2017-10-05 14:43:52.150316: W c:\l\tenorflow_1501907206084 \ work \ensorflow-1.2. 1\tenorflow\core\platform\cpu_feature_guard.cc:45] Библиотека TensorFlow не была скомпилирована для использования инструкций SSE4.2, но они доступны на вашей машине и могут ускорить вычисления ЦП. 2017-10-05 14:43:52.150316: W c:\l\tenorflow_1501907206084 \ work \ensorflow-1.2. 1\tenorflow\core\platform\cpu_feature_guard.cc:45] Библиотека TensorFlow не была скомпилирована для использования инструкций AVX, но они доступны на вашем компьютере и могут ускорить вычисления ЦП. 2017-10-05 14:43:52.151316: W c:\l\ensorflow_1501907206084 \ work \ensorflow-1.2. 1\tenorflow\core\platform\cpu_feature_guard.cc:45] Библиотека TensorFlow не была скомпилирована для использования инструкций AVX2, но они доступны на вашем компьютере и могут ускорить вычисления ЦП. 2017-10-05 14:43:52.151316: W c:\l\ensorflow_1501907206084 \ work \ensorflow-1.2. 1\tenorflow\core\platform\cpu_feature_guard.cc:45] Библиотека TensorFlow не была скомпилирована для использования инструкций FMA, но они доступны на вашем компьютере и могут ускорить вычисления ЦП. Чтение параметров модели из./seq2seq_bemodel\seq2seq.ckpt-6000 [будет создана модель] Чтение параметров модели из./seq2seq_ggmodel\seq2seq.ckpt-43800 2017-10-05 14:45:06.332559: W c:\l\ensorflow_1501907206084 \ работа \tensorflow-1,2. 1 \ensorflow\core\framework\op_kernel.cc:1158] Не найдено: ключ be_model/Variable_ 1 не найден в контрольной точке 2017-10-05 14:45:06.333559: W c:\l\tenorflow_1501907206084 \ work \ tenorflow-1.2, 1 \ensorflow\core\framework\op_kernel.cc:1158] Не найдено: Ключ be_model / be_pro_w не найден в контрольной точке 2017-10-05 14:45:06.334559: W c:\l\tenorflow_1501907206084 \ work \ tenorflow-1.2. 1 \ensorflow\core\framework\op_kernel.cc:1158] Не найдено: Ключ be_model / Переменная не найдена в контрольной точке 2017-10-05 14:45:06.337559: W c:\l\tenorflow_1501907206084 \ work \ tenorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ внимания_decoder/Attention_0/bia s не найден в контрольной точке 2017-10-05 14:45:06.338559: W c:\ л \tensorflow_1501907206084\ работа \tensorflow-1.2. 1\ensorflow\core\framework\op_kernel.cc:1158] Не найдено: Ключ be_model/be_proj_b не найден в контрольной точке 2017-10-05 14:45:06.341559: W c:\l\tenorflow_1501907206084 \ work \ tenorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ внимания_decoder / Attention_0 / номер ядра не найден в контрольной точке 2017-10-05 14:45:06.344559: W c:\ л \tensorflow_1501907206084\ работа \tensorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ Внимание_декодер /AttnOutputProje / контрольная точка / смещение не найдены в контрольной точке 2017-10-05 14:45:06.345559: W c:\ л \tensorflow_1501907206084\ работа \tensorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ внимания_decoder/AttnOutputProje ction/kernel не найден в контрольной точке 2017-10-05 14:45:06.346559: W c:\ л \tensorflow_1501907206084\ работа \tensorflow-1.2. 1\ensorflow\core\framework\op_kernel.cc:1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ внимания_decoder/AttnV_0 не найден в контрольной точке 2017-10-05 14:45:06.348560: W c:\l\tensorflow_1501907206084\ работа \tensorflow-1,2. 1 \ tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ внимания_decoder/AttnW_0 не найден в контрольной точке 2017-10-05 14:45:06.351560: W c:\l\tensorflow_1501907206084\ работа \tensorflow-1,2. 1 \ tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ Внимание_декодер / смещение не найден в контрольной точке 2017-10-05 14:45:06.353560: W c:\l\ensorflow_1501907206084 \ работа \tensorflow-1,2. 1 \ tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ внимания_decoder / kernel не найден d в контрольной точке 2017-10-05 14:45:06.355560: W c:\l\tensorflow_1501907206084\ работа \tensorflow-1,2. 1 \ tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ внимания_decoder / multi_rnn_cell / cell_0 / lstm_cell / смещение не найден в контрольной точке 2017-10-05 14:45:06.359560: W C: \ л \tensorflow_1501907206084\ работа \tensorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ внимания_decoder / multi_rnn_cell / cell_0 / lstm_cell / ядро не найдено в контрольной точке 2017-10-05 14:45:06.360560: W C: \ л \tensorflow_1501907206084\ работа \tensorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ внимания_decoder / multi_rnn_cell / cell_1 / lstm_cell / ядро не найдено в контрольной точке 2017-10-05 14:45:06.362560: W C: \ л \tensorflow_1501907206084\ работа \tensorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ внимания_decoder / multi_rnn_cell / cell_1 / lstm_cell / смещение не найден в контрольной точке 2017-10-05 14:45:06.363560: W C: \ л \tensorflow_1501907206084\ работа \tensorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ внимания_decoder / multi_rnn_cell / cell_2 / lstm_cell / смещение не найден в контрольной точке 2017-10-05 14:45:06.366561: W C: \ л \tensorflow_1501907206084\ работа \tensorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/ внимания_decoder / multi_rnn_cell / cell_2 / lstm_cell / ядро не найдено в контрольной точке 2017-10-05 14:45:06.367561: W C: \ л \tensorflow_1501907206084\ работа \tensorflow-1.2. 1\ensorflow\core\framework\op_kernel.cc:1158] Не найдено: ключ be_model/embedding _attention_seq2seq/embedding_attention_decoder/embedding не найден в контрольной точке 2017-10-05 14:45:06.371561: W c:\l\tenorflow_1501907206084\work\tensorflow-1,2. 1 \ensorflow\core\framework\op_kernel.cc:1158] Не найдено: ключ be_model/embedding _attention_seq2seq/rnn/embedding_wrapper/embedding не найден в контрольной точке 2017-10-05 14:45:06.374561: W c:\l\tenorflow_1501907206084 \ работа \tensorflow-1,2. 1 \ tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/rnn/embedding_wrapper/multi_rnn_cell/cell_0/lstm_cell/bias не найден в контрольной точке 2017-10-05 14:45:06.375561: W c:\l\ensorflow_1501907206084\work\tenorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/rnn/embedding_wrapper/multi_rnn_cell/cell_0/lstm_cell/kernel не найден в контрольной точке 2017-10-05 14:45:06.377561: W C: \ л \tensorflow_1501907206084\ работа \tensorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/rnn/embedding_wrapper/multi_rnn_cell/cell_1/lstm_cell/bias не найден в контрольной точке 2017-10-05 14:45:06.378561: W c:\l\ensorflow_1501907206084\work\tenorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/rnn/embedding_wrapper/multi_rnn_cell/cell_1/lstm_cell/kernel не найден в контрольной точке 2017-10-05 14:45:06.379561: W C: \ л \tensorflow_1501907206084\ работа \tensorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/rnn/embedding_wrapper/multi_rnn_cell/cell_2/lstm_cell/bias не найден в контрольной точке 2017-10-05 14:45:06.381561: W c:\l\ensorflow_1501907206084\work\tenorflow-1.2. 1\tenorflow \ core \ framework \ op_kernel.cc: 1158] Не найдено: ключ be_model/embedding _attention_seq2seq/rnn/embedding_wrapper/multi_rnn_cell/cell_2/lstm_cell/kernel не найден в контрольной точке Traceback (последний вызов был последним): файл "C:\Users\coco\Anaconda3\envs\tenorflow\lib\site-packages\tenorflow\pyt hon\client\session.py", строка 1139, в _do_call return fn(*args) Файл" C: \ Users \ coco \ Anaconda3 " \ envs \ tenorsflow \ lib \ site-packages \ensorflow\pyt hon\client\session.py", строка 1121, в состоянии _run_fn, run_metadata) Файл" C: \ Users \ coco \ Anaconda3 \ envs \ensorflow\lib\contextlib ".py ", строка 66, в __exit__ следующий (self.gen) файл" C: \ Users \ coco \ Anaconda3 \ envs \ensorflow\lib\site-packages\ensorflow\pyt hon\framework\errors_impl.py", строка 466, в Повышение_экспонирования_on_not_ok_STATUS "/ работа: локальный / реплика: 0 / задача: 0 / процессор:0"](_arg_gg_model/save/Const_0_0, gg_mode l/save/RestoreV2_1/tenor_names, gg_model/save/RestoreV2_1/shape_and_slices)]] Во время обработки вышеуказанного исключения возникло другое исключение: Трассировка (последний вызов был последним): файл "ослов.py ", строка 113, в main() Файл" разговор.пи ", строка 102, в основном разговор () Файл" разговор.py ", строка 55, в диалоге model_gg = GrammarGenerator.create_model(sess, True) Файл "C:\test\GrammarGenerator.py", строка 50, в файле create_model model.saver.restore(сеанс,ckpt.model_checkpoint_path) Файл "C:\Users\coco\Anaconda3\envs\tenorflow\lib\site-packages\tenorflow\pyt hon\training\saver.py", строка 1548, в restore {self.saver_def.filename_tensor_name: save_path}) Файл" C: \ Users \ coco \ Anaconda3 \ envs \ tenorflow " \ lib \ site-packages \ensorflow\pyt hon\client\session.py", строка 789, в прогоне run_metadata_ptr) Файл" C: \ Users \ coco \ Anaconda3 \ envs \ tenorflow \ lib \ site-packages \ensorflow \ pyt " hon \ client \ session.py ", строка 997, в _run feed_dict_string, options, run_metadata) Файл "C: \ Users \ coco \ Anaconda3 \ envs \ensorflow\lib\site-packages\ensorflow \ pyt hon \ client \ session.py", строка 1132, в _do_run target_list, options, run_metadata) Файл "C: \ Users \ coco \ Anaconda3 \ envs \ensorflow\lib\site-packages\tenorsflow \ pyt hon \ client \ session.py", строка 1152, в _do_call повышать тип (e)(node_def, op, message) tenorflow.python.framework.errors_impl.NotFoundError: Ключ be_model / Variable_1 не найден в контрольной точке [[Node: gg_model/save/RestoreV2_1 = RestoreV2[dtypes=[DT_INT32], _devic e="/job:localhost/replica:0/task:0/cpu:0"](_arg_gg_model/save/Const_0_0, gg_mode l/save/RestoreV2_1/tennors_names, gg_model / save / RestoreV2_1 / shape_and_slices)]] Вызвано операцией 'gg_model/save', определено в файле:1 "разговор.пи", строка 113, в main() файл "разговор.пи", строка 102, в основном разговор () файл "разговор.py", строка 55, в диалоге model_gg = GrammarGenerator.create_model(sess, True) Файл "C:\test\GrammarGenerator.py", строка 45, в create_model dtype=tf.float32) Файл "C:\test\seq2seq_model.py", строка 159, в __init__ self.saver = tf.train.Saver(tf.global_variables()) Файл "C: \ Users \ coco \ Anaconda3 \ envs \ensorflow\lib\site-packages\tenorflow\pyt hon\training\saver.py", строка 1139, в файле __init__ self.build()" C: \ Users \ coco \ Anaconda3 \ envs \ tenorflow \ " lib \ site-packages \ensorflow\pyt hon\training\saver.py", строка 1170, в сборке restore_sequentially=self._restore_sequentially) Файл" C: \ Users \ coco \ Anaconda3 \ envs \ensorflow\lib\site-packages\ " тензорный поток \ pyt hon \ training \ saver.py ", строка 691, в сборке restore_sequential, изменить форму) Файл" C: \ Users \ coco \ Anaconda3 \ envs \ensorflow\lib\site-packages\tenorflow \ pyt hon \ training \ saver ".py ", строка 407, в _AddRestoreOps tenors = self.restore_op(filename_tensor, сохраняемый, предпочтительный_шард) Файл" C: \ Users \ coco \ Anaconda3 \ envs \ensorflow\lib\site-packages\ensorflow \ pyt hon \ training \ saver ".py ", строка 247, в restore_op [spec.tensor.dtype])[0]) Файл" C: \ Users \ coco \ Anaconda3 \ envs \ tenor " flow \ lib \ site-packages \ensorflow\pyt hon\ops\gen_io_ops.py", строка 640, в restore_v2 dtypes=dtypes, name=name) Файл" C: \ Users \ coco \ Anaconda3 \ envs \ensorflow \ lib \ " site-packages \ensorflow\pyt hon\framework\op_def_library.py", строка 767, в apply_op op_def=op_def) Файл" C: \ Users \ coco \ Anaconda3 \ envs \ensorflow\lib\site-packages\ensorflow \ pyt hon " \framework\ops.py", строка 2506, в create_op original_op=self._default_original_op, op_def=op_def) Файл" C: \ Users \ coco \ Anaconda3 \ envs \ensorflow\lib\site-packages\ensorflow \ pyt hon \ framework " \ ops.py ", строка 1269, в __init__ self._traceback = _extract_stack() NotFoundError (см. выше для отслеживания): ключ be_model / Variable_1 не найден в контрольной точке [[Node: gg_model / save / RestoreV2_1 = RestoreV2 [dtypes = [ DT_INT32], _devic e = "/ job: localhost / replica: 0 / task: 0 / cpu: 0"] (_arg_gg_model / save / Const_0_0, gg_mode l / save / RestoreV2_1 / тензор_имей, gg_model / save / RestoreV2_1 / shape_and_s) ] (тензор потока) C:\test>:(
Приведенное выше сообщение об ошибке говорит, что "ключ be_model / Variable_1 не найден в контрольной точке". но я уже использовал inspect_checkpoint.py, чтобы проверить все тензоры, хранящиеся в моих обоих файлах контрольных точек, но нет дублированной области тензоров, и больше всего тензор be_model / Variable_1 существует в моем файле контрольных точек be_model.
(тензор потока) C:\test\seq2seq_bemodel>python inspect_checkpoint.py --file_name se q2seq.ckpt-5800 be_model/Variable (DT_FLOAT) [] be_model/Variable_1 (DT_INT32) [] be_model/be_model/be_pro_w/Adam (DT_FLOAT) [2179,150] ... и так далее
на самом деле я также не понял ошибку, возникшую выше, я не использовал тензор Variable_1 в моем коде...
Итак... Кто-нибудь, кто знает, какая проблема возникает на мне, пожалуйста, помогите мне.
1 ответ
Я решил свой вопрос, это было действительно просто, поэтому я смутился. проблема была в атрибуте saver моего объекта seq2seq. Я вызвал метод с аргументами tf.global_variables(). Я думаю, что был не прав, когда обычно просматривал заставку, это моя вина..
Когда возникает проблема, связанная с областью действия переменных или особенно объекта-заставки, я думаю, что inspect_checkpoint.py выглядит очень полезным.
Спасибо и всего наилучшего.