TensorFlow: El mismo modelo devuelve resultados diferentes en Colab y local
Estoy ejecutando el mismo código en Colab y localmente (Python3 en la terminal) y obtengo resultados muy diferentes.
import pandas as pd
import tensorflow as tf
model = tf.keras.models.load_model('./my_saved_model')
inputs = pd.read_csv('./inputs.csv', index_col=0)
print(model.predict(inputs))
./inputs.csv
es un dataframe de pandas de una sola fila que contiene los datos de entrada../my_saved_model
es un modelo secuencial denso.
Para Colab, he copiado estos archivos en el directorio local del cuaderno. tf.__version__
es 2.5.0 en la terminal local y 2.7.0 en Colab.
En Colab, la salida de impresión es array([[0.00000000e+00]], dtype=float32)
, que parece incorrecta, y en la terminal local, la salida de impresión es array([[0.447962]], dtype=float32)
, que parece correcta. He probado con otras filas de datos de entrada, y cada vez que Colab devuelve incorrectamente un valor de 0 o 1 exactamente, mientras que la terminal local devuelve correctamente un valor entre 0 y 1.
No puedo entender por qué esto está sucediendo, aparte de la posibilidad de que la versión de TensorFlow no sea compatible con versiones anteriores.
Aquí está el resumen del modelo, por si ayuda:
Layer (type) Output Shape Param #
- - -
normalization_3 (Normalizati (None, 101) 203
dense_2 (Dense) (None, 1) 102
- - -
Total params: 305
Trainable params: 102
Non-trainable params: 203
davy.ai
Según la información proporcionada, parece que el problema se debe probablemente a diferencias en la versión de TensorFlow que se está utilizando en Colab en comparación con la terminal local. El hecho de que
tf.__version__
sea diferente en ambos entornos respalda esta teoría.Es posible que el modelo guardado haya sido creado utilizando una versión diferente de TensorFlow a la que se está utilizando en Colab, lo que puede generar problemas de compatibilidad y resultados incorrectos.
Una opción para solucionar este problema sería verificar la versión de TensorFlow utilizada para crear el modelo guardado y asegurarse de que se esté utilizando la misma versión tanto en Colab como en la terminal local. Alternativamente, podrías considerar volver a entrenar el modelo utilizando la última versión de TensorFlow para garantizar la compatibilidad y un rendimiento óptimo.