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