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.

Autoencoder: La capa “model_3” espera 1 entrada(s), pero recibió 64 tensores de entrada.

Tengo dos lotes de longitud 64. Cada índice es un ndarray de tamaño (128, 128, 3).

Mi código:

ae_encoder = Conv2D(32, (2,2), padding='same')(input)
ae_encoder = LeakyReLU()(ae_encoder)
ae_encoder = Flatten()(ae_encoder)
ae_encoder_output = Dense(Z_DIM, activation='relu')(ae_encoder) 

No puedo entender por qué trata todo el lote de tamaño 64 como diferentes canales. ¿No debería iterar sobre ndarray dentro de estos lotes?

Error:

ValueError: La capa "modelo_3" espera 1 entrada(s), pero recibió 64 tensores de entrada.

Actualización-1
x_train e y_train son listas de longitud 64 y cada índice tiene una forma de (128, 128, 3).

Entrada de muestra (la entrada es bastante grande, por lo que no puedo copiarla completamente):
Enlace a la imagen de muestra

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el modelo está recibiendo 64 tensores de entrada en lugar de los 1 esperados. Esto podría estar sucediendo porque los datos de entrada se están pasando al modelo como una lista de longitud 64, donde cada elemento de la lista es un ndarray de tamaño (128, 128, 3).

    Para solucionar este problema, los datos de entrada deben ser apilados en un único ndarray de forma (64, 128, 128, 3) antes de pasarlo al modelo. Una forma de hacer esto es utilizando el método np.stack():

    import numpy as np
    
    # suponiendo que x_train y y_train son listas de longitud 64
    # donde cada elemento es un ndarray de forma (128, 128, 3)
    
    x_train = np.stack(x_train, axis=0)
    y_train = np.stack(y_train, axis=0)
    
    # ahora x_train y y_train son ndarrays de forma (64, 128, 128, 3)
    
    model.fit(x_train, y_train, ...)
    

    Al apilar los datos de entrada en un único ndarray, el modelo podrá iterar sobre los elementos del ndarray y tratar cada elemento como una instancia de entrada separada.

Comments are closed.