Tensorflow save_model загрузчик Linux против Windows [обновление] - PullRequest
0 голосов
/ 10 ноября 2019

По некоторым причинам я получаю ошибки при загрузке сохраненной модели в Linux. Например, я запустил его на Python 3.5.4 и tenorflow 1.10.0 в среде anaconda в Windows, и он работает, но затем я запустил его на той же версии python и tenorflow и той же версии conda на linux mint, и он не 'т работа! Вместо этого он выдает мне следующее сообщение об ошибке:

  File "<ipython-input-16-0689e9fe4aab>", line 4, in <module>
    path_to_model

  File "/home/anaconda3/envs/test3/lib/python3.5/site-packages/tensorflow/python/saved_model/loader_impl.py", line 212, in load
    return loader.load(sess, tags, import_scope, **saver_kwargs)

  File "/home/anaconda3/envs/test3/lib/python3.5/site-packages/tensorflow/python/saved_model/loader_impl.py", line 366, in load
    self.restore_variables(sess, saver, import_scope)

  File "/home/anaconda3/envs/test3/lib/python3.5/site-packages/tensorflow/python/saved_model/loader_impl.py", line 318, in restore_variables
    saver.restore(sess, self._variables_path)

  File "/home/anaconda3/envs/test3/lib/python3.5/site-packages/tensorflow/python/training/saver.py", line 1717, in restore
    + compat.as_text(save_path))

"ValueError: The passed save_path is not a valid checkpoint: model/a/test1/variables/variables'"

Код:

path_to_model = 'model/a/test1/'

current_graph = tf.Graph()
current_session = tf.Session(graph = current_graph)

curr_meta_graph_definition = tf.saved_model.loader.load(
                                                           current_session,
                                                           [tf.saved_model.tag_constants.SERVING],
                                                           path_to_model
                                                       )

ОБНОВЛЕНИЕ: Я думаю, что проблема на самом деле может быть связана с Linux против Windows. Я заметил, что я на самом деле сохраняю модель следующим образом:

    export_path = os.path.join(
                                    tf.compat.as_bytes(self.path),
                                    tf.compat.as_bytes(str(iteration_val))
                                )

    self.builder = tf.saved_model.builder.SavedModelBuilder(export_path)
    .....

Кто-нибудь знает, будет ли tf.compat.as_bytes работать по-другому в Linux и Windows? Я заметил, что модели, которые я сохраняю в Windows, не могут быть загружены обратно в Linux, но я могу сохранить и загрузить модели, если они сделаны в той же ОС.

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