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.

Valor de error: La entrada 0 de la capa secuencial_4 no es compatible con la capa: se esperaba ndim=4, se encontró ndim=3. Se recibió la forma completa: (None, 1188, 6)

He implementado un modelo utilizando el siguiente código.

modelo=models.Sequential()
modelo.add(tf.keras.layers.DepthwiseConv2D((3, 5), padding='valid', depth_multiplier=10, input_shape=(1188,1188,1)))

modelo.add(layers.MaxPooling2D((3,3), strides=(1, 1)))
modelo.add(layers.Dropout(.2))
modelo.add(tf.keras.layers.DepthwiseConv2D((2, 4), padding='valid', depth_multiplier=2))
modelo.add(layers.MaxPooling2D((2,2), strides=(1, 1)))
modelo.add(layers.Dropout(.2))
modelo.add(tf.keras.layers.DepthwiseConv2D((2, 2), padding='valid', depth_multiplier=2))
modelo.add(layers.MaxPooling2D((3,2), strides=(1, 2)))
modelo.add(layers.Dropout(.2))
modelo.add(layers.Flatten())

modelo.add(layers.Dense(5))

modelo.summary()

modelo.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

modelo.fit(f1, labels1,batch_size=20,epochs=10)

La forma de f1 y labels1 es (1188, 1188, 6) y (1188, 1188, 1) respectivamente.

Después de ejecutarlo, obtengo este error: ValueError: Input 0 of layer sequential_4 is incompatible with the layer: expected ndim=4, found ndim=3. Full shape received: (None, 1188, 6)

También intenté con input_shape=(1188,1188) en el modelo.

Pero obtuve un error al ejecutar el modelo: ValueError: Input 0 of layer depthwise_conv2d is incompatible with the layer: : expected min_ndim=4, found ndim=3. Full shape received: (None, 1188, 1188)

¿Cometí un error al elegir la forma de entrada?

Si es así, ¿qué tipo de modificación debería hacer?

Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, cometiste un error al elegir la forma de entrada. La forma de entrada que has elegido (1188, 1188, 1) es para una Red Neuronal Convolucional (CNN) 2D que recibe un tensor de 4 dimensiones (tamaño_lote, altura, ancho, canales). Sin embargo, en el modelo que has implementado estás utilizando capas DepthwiseConv2D que requieren un tensor de 4 dimensiones como entrada. En este caso, debes redimensionar tu entrada a (num_muestras, altura, ancho, canales).

    Dado que la forma de f1 es (1188, 1188, 6), debes cambiar la forma de entrada a (1188, 1188, 6, 1). Esto agregará una cuarta dimensión a tu tensor de entrada, que es requerida para las capas DepthwiseConv2D. Por lo tanto, debes modificar la forma de entrada en la línea de inicialización del modelo de la siguiente manera:

    modelo = models.Sequential()
    modelo.add(tf.keras.layers.DepthwiseConv2D((3, 5), padding='valid', depth_multiplier=10, input_shape=(1188, 1188, 6, 1)))
    

    Esta modificación debería resolver el error que has encontrado.

Comments are closed.