Хорошо, мне наконец-то удалось загрузить перемещенную / скопированную модель.
Если вы используете
tf.train.latest_checkpoint
тогда целевой файл загрузки должен находиться в том же каталоге, в котором он был создан.В противном случае вы должны открыть файл «контрольная точка» и изменить путь к каталогу в файле.Это работает, но не рекомендуется.
Я рекомендую НЕ ИСПОЛЬЗОВАТЬ
tf.train.latest_checkpoint
для загрузки модели , когда сохраненная модель перемещается или копируется в другой каталог / систему.
Просто используйте этот
saver.restore (sess, 'путь / к / файлу')
Затем он загрузит модель.
Для ясности, если вы пытаетесь загрузить, как показано ниже
saver = tf.train.import_meta_graph(filepath)
tf.reset_default_graph()
sess = tf.Session()
saver.restore(sess, tf.train.latest_checkpoint('file/path/to/new/directory'))
, вы должны изменить файл 'контрольной точки' на новый путь к каталогу.
В противном случае простосделать
saver = tf.train.import_meta_graph(filepath)
tf.reset_default_graph()
sess = tf.Session()
saver.restore(sess, 'file/path/to/new/directory')
========================================================= Я обнаружил еще одну проблему, которую люди должны знать.Так или иначе, если я тренируюсь в Windows (не проверял Linux или Mac OSX), файл контрольных точек записывает свой путь с абсолютным путем.
Так что, если вы пытаетесь загрузить модель из какой-либо другой системы, он не найдетправильный путь к каталогу для загрузки, так как он ищет абсолютный путь к каталогу, записанный системой каталогов Windows (который начинается с c: / или d: / etc)
Мой пример контрольной точки следующий:
1047 * model_checkpoint_path: "d: / Projects_data / emulator_data / NEW / cnn_21category_char \ tf_ckpt \ _loss_1.357984_accuracy_0.5358-2700" all_model_checkpoint_paths: «d: / Projects_data / emulator_data / NEW / cnn_21category_char \ tf_ckpt \ _loss_1.403583_accuracy_0.5247-1500 «all_model_checkpoint_paths:» d: / Projects_data / emulator_data / NEW / cnn_21category_char \ tf_ckpt \ _loss_1.385835_accuracy_0.5302-1800 "all_model_checkpoint_paths:" /"all_model_checkpoint_paths:" d: / Projects_data / emulator_daта / NEW / cnn_21category_char \ tf_ckpt \ _loss_1.359645_accuracy_0.5363-2400" all_model_checkpoint_paths: "d: / Projects_data / emulator_data / NEW / cnn_21category_char \ tf_ckpt \ _loss_1.357984_accuracy_0.5358-2700"
ЕслиЕсли вы хотите, чтобы он был прочитан, то вы должны изменить его на относительный путь, как показано ниже:
model_checkpoint_path: "_loss_1.357984_accuracy_0.5358-2700" all_model_checkpoint_paths: "_loss_1.403583_accuracy_0pointckathche__point_paths"): _loss_1.385835_accuracy_0.5302-18001056 * Тогда это будет работать.Поэтому я бы рекомендовал проверить файл контрольных точек, если он записан как абсолютный путь.