Da quanto ho raccolto finora, ci sono diversi modi per scaricare un grafico TensorFlow in un file e quindi caricarlo in un altro programma, ma non sono stato in grado di trovare esempi / informazioni chiari su come funzionano. Quello che già so è questo:
- Salvare le variabili del modello in un file di checkpoint (.ckpt) utilizzando a
tf.train.Saver()
e ripristinarle in seguito ( sorgente ) - Salva un modello in un file .pb e caricalo di nuovo usando
tf.train.write_graph()
etf.import_graph_def()
( sorgente ) - Carica un modello da un file .pb, riqualificalo e scaricalo in un nuovo file .pb usando Bazel ( sorgente )
- Blocca il grafico per salvare il grafico e i pesi insieme ( fonte )
- Utilizzare
as_graph_def()
per salvare il modello e, per pesi / variabili, mapparli in costanti ( sorgente )
Tuttavia, non sono stato in grado di chiarire diverse domande su questi diversi metodi:
- Per quanto riguarda i file di checkpoint, salvano solo i pesi addestrati di un modello? I file del checkpoint possono essere caricati in un nuovo programma e utilizzati per eseguire il modello o servono semplicemente come modi per salvare i pesi in un modello in un determinato momento / fase?
- A proposito
tf.train.write_graph()
, vengono salvati anche i pesi / variabili? - Per quanto riguarda Bazel, può solo salvare in / caricare da file .pb per la riqualificazione? Esiste un semplice comando Bazel solo per eseguire il dump di un grafico in un .pb?
- Per quanto riguarda il congelamento, è possibile caricare un grafico congelato utilizzando
tf.import_graph_def()
? - La demo Android per TensorFlow viene caricata nel modello Inception di Google da un file .pb. Se volessi sostituire il mio file .pb, come dovrei fare per farlo? Avrei bisogno di cambiare codice / metodo nativo?
- In generale, qual è esattamente la differenza tra tutti questi metodi? O più in generale, qual è la differenza tra
as_graph_def()
/.ckpt/.pb?
In breve, quello che sto cercando è un metodo per salvare sia un grafico (come in, le varie operazioni e simili) che i suoi pesi / variabili in un file, che può poi essere utilizzato per caricare il grafico e i pesi in un altro programma , per l'uso (non necessariamente continuazione / riqualificazione).
La documentazione su questo argomento non è molto semplice, quindi qualsiasi risposta / informazione sarebbe molto apprezzata.