es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El objeto ‘TFLiteKerasModelConverterV2’ no tiene el atributo ‘predict’.

Estoy tratando de predecir valores cargando una versión guardada de mi modelo.
Aquí está el código para ello-
“`
def clasificador(img, archivo_pesos):
# Cargar el modelo

<pre><code>modelo = tf.lite.TFLiteConverter.from_keras_model(archivo_pesos)

# Crear el arreglo con la forma correcta para alimentar el modelo de keras
datos = np.ndarray(shape=(1, 200, 200, 3), dtype=np.float32)
imagen = img
# ajuste de imagen
tamaño = (200, 200)
imagen = ImageOps.fit(imagen, tamaño, Image.ANTIALIAS)

# convertir la imagen en un arreglo numpy
arreglo_imagen = np.asarray(imagen)
# Normalizar la imagen
arreglo_imagen_normalizado = arreglo_imagen.astype(np.float32) / 255

# Cargar la imagen en el arreglo
datos[0] = arreglo_imagen_normalizado

# ejecutar la inferencia
porcentaje_prediccion = modelo.predict(datos)
prediccion = porcentaje_prediccion.round()

return prediccion, porcentaje_prediccion
</code></pre>

“`
Mi modelo arroja un error “El objeto ‘TFLiteKerasModelConverterV2’ no tiene el atributo ‘predict'”
¿Alguien puede decirme qué puedo cambiar aquí?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en el uso de TFLiteConverter para cargar el modelo de keras. TFLiteConverter se utiliza para convertir el modelo de keras al formato TensorFlow Lite, no para cargar el modelo guardado. Para cargar un modelo de keras guardado, puedes utilizar el método tf.keras.models.load_model(). Aquí tienes una versión actualizada del código:

    def clasificador(img, archivo_pesos):
        # Cargar el modelo
        modelo = tf.keras.models.load_model(archivo_pesos)
    
        # Crear el array con la forma correcta para alimentar el modelo de keras
        datos = np.ndarray(shape=(1, 200, 200, 3), dtype=np.float32)
        imagen = img
        # Ajuste del tamaño de la imagen
        tamaño = (200, 200)
        imagen = ImageOps.fit(imagen, tamaño, Image.ANTIALIAS)
    
        # Convertir la imagen en un array numpy
        array_imagen = np.asarray(imagen)
        # Normalizar la imagen
        array_imagen_normalizada = array_imagen.astype(np.float32) / 255
    
        # Cargar la imagen en el array
        datos[0] = array_imagen_normalizada
    
        # Realizar la inferencia
        porcentaje_prediccion = modelo.predict(datos)
        prediccion = porcentaje_prediccion.round()
    
        return prediccion, porcentaje_prediccion
    

    Esto debería resolver el error y permitirte cargar y utilizar tu modelo de keras guardado para hacer predicciones.

Comments are closed.