Восстановить модели в тензорном потоке - PullRequest
0 голосов
/ 28 июня 2018

Я использую tenorflow для реализации нейронной сети, и чтобы сохранить мою модель, я написал следующие строки:

Первый сохранить: saver.save(sess, 'logs/model_%d.ckpt' % epoch_i)

Затем восстановить:

restore = True
if restore == True :
   saver = tf.train.import_meta_graph('logs/model_55.ckpt.meta')
   saver.restore(sess, "logs/model_55.ckpt")
   print("Model restored.")

Модель хорошо восстановлена, потому что до отображения «Модель восстановлена» не было ошибок , но сразу после этого у меня появляется следующая ошибка:

    tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value beta1_power
         [[Node: beta1_power/read = Identity[T=DT_FLOAT, _class=["loc:@triplet/dense1/bias"], _device="/job:localhost/replica:0/task:0/device:GPU:0"](beta1_power)]]
         [[Node: sqrt2_1/_385 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_28263_sqrt2_1", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

    During handling of the above exception, another exception occurred:

[...]

        raise type(e)(node_def, op, message)
    tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value beta1_power
         [[Node: beta1_power/read = Identity[T=DT_FLOAT, _class=["loc:@triplet/dense1/bias"], _device="/job:localhost/replica:0/task:0/device:GPU:0"](beta1_power)]]
         [[Node: sqrt2_1/_385 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_28263_sqrt2_1", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

    Caused by op 'beta1_power/read', defined at:

[...]


    FailedPreconditionError (see above for traceback): Attempting to use uninitialized value beta1_power
         [[Node: beta1_power/read = Identity[T=DT_FLOAT, _class=["loc:@triplet/dense1/bias"], _device="/job:localhost/replica:0/task:0/device:GPU:0"](beta1_power)]]
         [[Node: sqrt2_1/_385 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_28263_sqrt2_1", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

    Traceback (most recent call last):

[...]

    tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value beta1_power
         [[Node: beta1_power/read = Identity[T=DT_FLOAT, _class=["loc:@triplet/dense1/bias"], _device="/job:localhost/replica:0/task:0/device:GPU:0"](beta1_power)]]
         [[Node: sqrt2_1/_385 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_28263_sqrt2_1", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

Я не имею представления о проблеме, поднятой этой ошибкой, у кого-нибудь есть решение?

Я поместил имена для каждой операции в графе, а также попробовал с несколькими синтаксисами, похоже, ничего не работает ...

Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 28 июня 2018

попробуйте инициализировать ваши переменные перед восстановлением tf.global_variables_initializer().run()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...