Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

299
Vistas
Keras: Esperaba 3 dimensiones, pero obtuvo una matriz con forma - modelo denso

Quiero hacer una clasificación de etiquetas múltiples (20 etiquetas de salida distintas), basada en palabras vectorizadas usando TfidfVectorizer. Tengo un conjunto de 39974 filas, cada una de las cuales contiene 2739 elementos (ceros o unos).

Me gustaría clasificar estos datos usando el modelo Keras que contendrá 1 capa oculta (~20 nodos con activación = 'relu') y la capa de salida equivale a 20 valores de salida posibles (con activación = 'softmax' para elegir el mejor ajuste).

Aquí está mi código hasta ahora:

 model = Sequential() model.add(Dense(units=20, activation='relu', input_shape=tfidf_matrix.shape)) model.add(Dense(units=20, activation='softmax')) model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy']) model.fit(tfidf_matrix, train_data['cuisine_id'], epochs=10)

Pero obtuve un error:

ValueError: error al verificar la entrada: se esperaba que dense_1_input tuviera 3 dimensiones, pero obtuvo una matriz con forma (39774, 2739)

¿Cómo puedo especificar que este NN se ajuste al uso de esta matriz?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El número de filas (número de muestras de entrenamiento) no es parte de la forma de entrada de la red porque el proceso de entrenamiento alimenta la red con una muestra por lote (o, más precisamente, muestras de tamaño de lote por lote).

Entonces, en su caso, la forma de entrada de la red es (2739, ) y el código correcto debería ser así:

 model = Sequential() # the shape of one training example is input_shape = tfidf_matrix[0].shape model.add(Dense(units=20, activation='relu', input_shape=input_shape)) model.add(Dense(units=20, activation='softmax')) model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy']) model.fit(tfidf_matrix, train_data['cuisine_id'], epochs=10)
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda