Recibí el siguiente error cuando traté de entrenar un modelo MLP en keras (estoy usando la versión 1.2.2 de keras)
Error al verificar la entrada del modelo: la lista de matrices Numpy que está pasando a su modelo no tiene el tamaño que esperaba el modelo. Se esperaba ver 1 arreglos, pero en su lugar obtuve la siguiente lista de 12859 arreglos:
Este es el resumen del modelo.
____________________________________________________________________________________________________ Layer (type) Output Shape Param # Connected to ==================================================================================================== dense_1 (Dense) (None, 20) 4020 dense_input_1[0][0] ____________________________________________________________________________________________________ dense_2 (Dense) (None, 2) 42 dense_1[0][0] ==================================================================================================== Total params: 4,062 Trainable params: 4,062 Non-trainable params: 0 ____________________________________________________________________________________________________ NoneEsta es la primera línea del modelo.
model.add(Dense(20, input_shape=(200,), init='lecun_uniform', activation='tanh'))Para entrenamiento:
model.fit(X,Y,nb_epoch=100,verbose=1)donde X es una lista de elementos y cada elemento a su vez es una lista de 200 valores.
Editar :
yo también probé
model.add(Dense(20, input_shape=(12859,200), init='lecun_uniform', activation='tanh'))pero me sale el mismo error
Su error proviene del hecho de que su X , por alguna razón, no se transformó en un numpy.array . En esto, su X se trata como una lista de filas y esta es una razón detrás de su mensaje de error (que esperaba una entrada en lugar de una lista que tiene varios elementos de filas). Transformación:
X = numpy.array(X) Y = numpy.array(Y)Verificaría un proceso de carga de datos porque algo podría salir mal allí.
ACTUALIZAR:
Como se mencionó en un comentario, input_shape debe cambiarse a input_dim .
ACTUALIZACIÓN 2:
Para mantener input_shape , se debe cambiar a input_shape=(200,) .
Arreglé el mío agregando
np.matriz
para entrenar_X, entrenar_Y, valid_X y valid_Y. Por ejemplo,
model.fit(np.array(train_X),np.array(train_Y), batch_size=32,nb_epoch=20, validation_data=(np.array(valid_X),np.array(valid_Y)), callbacks=[early_stop])Obtuve la ayuda de aquí . Es probable que este enfoque tenga una ejecución lenta porque todas las características de los datos deberán convertirse en matrices numpy y podría ser mucho trabajo para su sistema.