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.

Tamaño de matriz incompatible: In[0]: [2,54], In[1]: [20,64]

He estado obteniendo este error y no puedo encontrar la razón. Si alguien podría ayudar, sería genial. Este es mi código:

Construir el modelo

modelo2 = Sequential()
modelo2.add(Dense(64, input_shape=(54,), activation=’relu’))
modelo2.add(Dropout(0.3))
modelo2.add(Dense(256, activation=’relu’))
modelo2.add(Dropout(0.3))
modelo2.add(Dense(512, activation=’relu’))
modelo2.add(Dropout(0.3))
modelo2.add(Dense(512, activation=’relu’))
modelo2.add(Dropout(0.3))
modelo2.add(Dense(256, activation=’relu’))
modelo2.add(Dropout(0.3))
modelo2.add(Dense(64, activation=’relu’))
modelo2.add(Dropout(0.3))
modelo2.add(Dense(3, activation=’softmax’, name=’output’))

Optimizador Adam con tasa de aprendizaje de 0.001

optimizador = Adam(lr=0.001)
modelo2.compile(optimizador, loss=’categorical_crossentropy’, metrics=[‘accuracy’])

print(‘Resumen del Modelo de Red Neuronal 2:’)
print(modelo2.summary())
log_dir = os.path.join(‘MID-logs’, ‘modelo-2-OneHot’)
modelo_cbk = keras.callbacks.TensorBoard(log_dir=log_dir)
modelo_mckp = keras.callbacks.ModelCheckpoint(model_dir + ‘/Mejor-modelo-2.h5’,
monitor=’val_categorical_accuracy’,
save_best_only=True, mode=’max’)
historia_2 = modelo2.fit(x_train_one_hot, y, batch_size=64, epochs=200,validation_data=(x_val_one_hot, y_val))
test_combats_df = pd.read_csv(‘test_1.csv’,header=None) # Leer datos de combates de prueba
x_test_one_hot = pokemon_data_one_hot[test_combats_df -1].reshape((-1, 54))
x_test_one_hot[99]
test_one_hot_predicted = modelo.predict(x_val_one_hot[:2])

Y este es el error que he estado obteniendo.

InvalidArgumentError: Tamaño de la matriz incompatible: In[0]: [2,54], In[1]:
[20,64] [[node sequential/dense/Relu (definido en
:1) ]]
[Op:__inference_predict_function_635630]

Rastreo de llamadas a la función: predict_function

Parece que el problema está en la función de la capa Relu() donde de alguna manera no puede multiplicar la misma dimensión de la matriz. Pero no está claro cómo solucionar el problema. Gracias por la ayuda de antemano…

Tags:  ,

Answer

  1. Avatar for davy.ai

    Basándonos en el mensaje de error, parece que hay una discrepancia en las dimensiones del tensor de entrada para la primera capa Dense y el tensor de pesos de esa capa. El tensor de entrada tiene una forma de (2, 54), mientras que el tensor de pesos tiene una forma de (20, 64). Esto sugiere que el número de características de entrada (54) no coincide con el número de neuronas en esa capa (64).

    Para solucionar este problema, debes asegurarte de que la forma de entrada para la primera capa Dense coincida con el número de características de entrada. En este caso, el tensor de entrada tiene una forma de (2, 54), por lo que debes cambiar la forma de entrada de la primera capa Dense a (54,), como se muestra a continuación:

    model2.add(Dense(64, input_shape=(54,), activation='relu'))
    

    Con este cambio, el tensor de entrada tendrá una forma de (2, 54), y el tensor de pesos para la primera capa Dense tendrá una forma de (54, 64), que es compatible con el tensor de entrada.

    Una vez que realices este cambio, puedes intentar ejecutar el código nuevamente y ver si resuelve el error.

Comments are closed.