Из того, что я собрал до сих пор, существует несколько разных способов сброса графика TensorFlow в файл, а затем загрузка его в другую программу, но я не смог найти четкие примеры/информацию о том, как они работают, Я уже знаю это:
- Сохраните переменные модели в файл контрольной точки (.ckpt) с помощью
tf.train.Saver()
и восстановите их позже (source) - Сохраните модель в файле .pb и загрузите ее обратно с помощью
tf.train.write_graph()
иtf.import_graph_def()
(source) - Загрузите модель из файла .pb, переустановите ее и выгрузите в новый .pb файл с помощью Bazel (source)
- Зафиксируйте график, чтобы сохранить график и вес вместе (источник)
- Используйте
as_graph_def()
для сохранения модели и для весов/переменных, сопоставьте их с константами (источник)
Однако я не смог прояснить несколько вопросов относительно этих разных методов:
- Что касается файлов контрольных точек, они сохраняют только подготовленные веса модели? Могут ли файлы контрольных точек загружаться в новую программу и использоваться для запуска модели, или они просто служат в качестве способов сохранения весов в модели в определенное время/этап?
- Что касается
tf.train.write_graph()
, также сохраняются ли весы/переменные? - Что касается Bazel, может ли он только сохранить/загрузить из .pb файлов для переподготовки? Есть ли простая команда Bazel, чтобы сбрасывать граф в .pb?
- Что касается замораживания, может ли загруженный замороженный граф использовать
tf.import_graph_def()
? - Демонстрация Android для загрузки TensorFlow в модели Google Inception из файла .pb. Если бы я хотел подставить свой собственный .pb файл, как бы я это сделал? Должен ли я изменить любой собственный код/методы?
- В общем, какая именно разница между всеми этими методами? Или более широко, в чем разница между
as_graph_def()
/. Ckpt/.pb?
Короче говоря, то, что я ищу, - это метод, который позволяет сохранить как график (как в, различные операции и т.д.), так и его вес/переменные в файл, который затем можно использовать для загрузки графика и весов в другую программу для использования (не обязательно продолжение/переподготовка).
Документация по этой теме не очень проста, поэтому любые ответы/информация были бы оценены.