Estoy probando para cargar el modelo TensorFlow.js y tratando de medir cuántos milisegundos se necesitan para predecir. Por ejemplo, la primera vez, se tarda unos 300 milisegundos en predecir el valor, pero el tiempo se reduce a 13~20 milisegundos desde la segunda prueba. No estoy calculando el tiempo a partir de la carga del modelo. Estoy calculando solo el valor de predicción después de cargar el modelo.
¿Alguien puede explicar por qué se reduce el tiempo para predecir el valor?
// Calling TensorFlow.js model const MODEL_URL = 'https://xxxx-xxxx-xxxx.xxx.xxx-xxxx-x.xxxxxx.com/model.json' let model; let prediction; export async function getModel(input){ console.log("From helper function: Model is being retrieved from the server...") model = await tf.loadLayersModel(MODEL_URL); // measure prediction time var str_time = new Date().getTime(); prediction = await model.predict(input) var elapsed = new Date().getTime() - str_time; console.log("Laoding Time for Tensorflow: " + elapsed) console.log(prediction.arraySync()) ... }Por lo general, la primera predicción tardaría más debido a la necesidad de cargar el modelo en la memoria desde la solicitud de la API; una vez hecho esto, se almacenaría en caché y no sería necesario volver a realizar la misma solicitud de la API.
Si desea ver el tiempo de predicción real, repita el proceso de cronometrar las predicciones muchas veces (quizás 1000) y luego obtenga el valor del cuantil 99 que mostrará cuál es el tiempo de predicción para el 99 % de los casos (puede modificar el valor del cuantil también a 90 o 50).