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.

La Red Neuronal Convolucional de Keras no se ajusta debido a los datos.

¿Alguien puede decirme qué pude haber hecho mal o está mal? Mi código se ejecuta hasta que ajusto el modelo. Mis datos de entrenamiento consisten en imágenes de caras con etiquetas de raza. Sé con certeza que mis datos de entrenamiento se han almacenado/cargado a través de pickle y se han normalizado.

Todas mis imágenes tienen un tamaño de 224 x 224.

pickle_in = open("X.pickle", "rb")
X = pickle.load(pickle_in) # cargar características

pickle_in = open("y.pickle", "rb") # cargar etiquetas
y = pickle.load(pickle_in)

X = X/255.0 # normalizar características

Creación de red neuronal convolucional

model = Sequential()
model.add(Conv2D(64, (3, 3), input_shape=X.shape[1:]))
model.add(Activation(‘relu’))
model.add(MaxPooling2D(pool_size=(2, 2)))

model = Sequential()
model.add(Conv2D(64, (3, 3)))
model.add(Activation(‘relu’))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten()) # convierte mapas de características 3D en vectores de características 1D
model.add(Dense(64)) # capa completamente conectada

model.add(Dense(1)) # capa de salida
model.add(Activation(‘sigmoid’)) # función de activación sigmoidal

model.compile(loss=’categorical_crossentropy’,
optimizer=’adam’,
metrics=[‘accuracy’])

model.fit(X, y, batch_size=32, epochs=10) # entrenar modelo

no estoy seguro de por qué no está funcionando con los datos

Recibo este error:
ValueError: Failed to find data adapter that can handle input:
, ( containing values of types {““})

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que puede haber un problema con el formato de tus etiquetas, las cuales se cargan utilizando pickle en el segundo bloque de código. El mensaje de error sugiere que la función model.fit() no puede manejar la entrada, la cual consiste en un numpy.ndarray para X (las imágenes) y una lista para y (las etiquetas).

    Asegúrate de que tus etiquetas estén en el formato esperado, el cual debe coincidir con la forma de tu capa de salida en el modelo. Por ejemplo, si tu capa de salida tiene 3 nodos representando 3 razas diferentes, entonces tus etiquetas deberían ser matrices codificadas en uno de forma caliente de forma (n_muestras, 3).

    Alternativamente, puedes cambiar la función de activación de tu capa de salida a ‘softmax’ en lugar de ‘sigmoid’ y mantener tus etiquetas como una lista de enteros que representan la raza de cada imagen. Esto convertirá internamente tus etiquetas en matrices codificadas en uno de forma caliente durante el entrenamiento del modelo.

    Otra cosa a revisar es que tus datos de entrada y etiquetas tengan el mismo número de muestras. Verifica que la longitud de X y y sea la misma.

    ¡Espero que esto ayude!

Comments are closed.