Cuando cargo un modelo entrenado (en tensorflow.js dentro de Node.js) que guardé previamente, la topología del modelo se carga, pero ninguno de los pesos se carga (por lo que tengo que entrenar el modelo desde cero). No se arrojan errores.
Para guardar el modelo, estoy usando:
async function save(path) { //misc. unrelated code goes here await model.save('file://' + path); }
Aparecen todos los archivos ( model.json
y weights.bin
), y no se arrojan errores.
Para cargar el archivo, estoy usando:
async function load(path) { //misc. unrelated code goes here. model = await tf.loadLayersModel('file://' + path + '/model.json'); }
Nuevamente, no se arrojan errores. La topología del modelo se carga correctamente. Sin embargo, los pesos no lo son, y el modelo se comporta como si acabara de construirlo/compilarlo.
Estoy usando tfjs-node save:
const tf = require('@tensorflow/tfjs'); require("tfjs-node-save");
Agradecería mucho cualquier ayuda o consejo!!! ¡Gracias!
save() y loadLayersModel() son funciones asíncronas.
model.save(url).then(result => console.log(result));
tf.loadLayersModel(url).then(result => console.log(result))
Entonces resulta que esto fue solo un error tonto.
Tenía una función contenedora para agregar alguna funcionalidad a model.compile()
.
Por alguna razón olvidada de Dios, en esa función, llamé a mi función de inicialización, que sobrescribió el modelo.
tl; dr, no sobrescriba un modelo que desee conservar.