З того, що я зібрав до цих пір, існує кілька різних способів скидання графіка TensorFlow у файл і потім завантаження його в іншу програму, але я не зміг знайти чітких прикладів / інформації про те, як вони працюють. Я вже знаю це:
- Збережіть змінні моделі у файл контрольної точки (.ckpt) за допомогою a
tf.train.Saver()
та відновіть їх пізніше ( джерело ) - Збережіть модель у .pb-файл та завантажте її знову за допомогою
tf.train.write_graph()
таtf.import_graph_def()
( source ) - Завантажте модель з .pb-файлу, перепідготовте її та скиньте її в новий .pb-файл за допомогою Bazel ( джерело )
- Заморожте графік, щоб зберегти графік та ваги разом ( джерело )
- Використовуйте
as_graph_def()
для збереження моделі, а для ваг / змінних наносіть їх на константи ( джерело )
Однак мені не вдалося прояснити кілька питань стосовно цих різних методів:
- Що стосується файлів контрольних точок, чи зберігають вони лише навчені ваги моделі? Чи можуть файли контрольної точки завантажуватися в нову програму та використовуватися для запуску моделі, чи вони просто служать способом збереження ваг у моделі в певний час / етап?
- Що стосується того
tf.train.write_graph()
, чи зберігаються також ваги / змінні? - Що стосується Bazel, чи може вона зберігати / завантажувати лише з .pb файлів для перепідготовки? Чи є проста команда Bazel просто скинути графік у .pb?
- Що стосується заморожування, чи можна завантажувати заморожений графік за допомогою
tf.import_graph_def()
? - Демо-версія Android для TensorFlow завантажується в модель Inception Google з файлу .pb. Якби я хотів замінити власний .pb файл, як би я це зробив? Чи потрібно мені змінити будь-який нативний код / методи?
- Загалом, у чому саме різниця між усіма цими методами? Або, ширше, в чому різниця між
as_graph_def()
/.ckpt/.pb?
Якщо коротко, то, що я шукаю, це метод збереження як графіка (як, у різних операціях і подібних), так і його ваг / змінних у файл, який потім може бути використаний для завантаження графіка та ваг в іншу програму , для використання (не обов’язково продовження / перекваліфікація).
Документація на цю тему не є однозначною, тому будь-які відповіді / інформація будуть дуже вдячні.