Pregunta

Actualmente estoy luchando por entender cómo debería entrenar mi red de regresión usando keras. No estoy seguro de cómo debería pasar mis datos de entrada a la red.

Tanto los datos de entrada como los datos de salida se almacenan como una lista de matrices numpy.

Cada matriz Numpy de entrada es una matriz que tiene (400 filas, columnas x) cada matriz Numpy de salida es una matriz que tiene (x número de filas, 13 columnas)

Entonces, la dimensión de entrada es 400 y la salida es 13. Pero, ¿cómo paso cada uno de estos conjuntos dentro de la lista a la capacitación?

# Multilayer Perceptron
model = Sequential()    # Feedforward
model.add(Dense(3, input_dim=400, output_dim=13))
model.add(Activation('tanh'))
model.add(Dense(1))
model.compile('sgd', 'mse')

Sé que Model.fit entrena el modelo dado el parámetro, cómo toma los datos se parece un poco a la magia, y cómo sabe que las columnas de Matrix A deben mapear las filas de la matriz B, esto tiene que ser. hecho para toda la matriz, adjunta a la lista.

¿Fue útil?

Solución

Si observa la documentación de Keras, observará que para las primeras capas del modelo secuencial toma la entrada requerida. Entonces, por ejemplo, su primera capa es una capa densa con dimensión de entrada como 400. Por lo tanto, cada entrada debe ser una matriz numpy del tamaño 400. Puede pasar una matriz Numpy 2D con tamaño (x, 400). (Supongo que X es el número de ejemplos de entrada). Su salida tiene 13 dimensiones para cada documento de salida y, por lo tanto, su capa densa final debe ser model.add(Dense(13)) en lugar de model.add (denso (1)).

Al llegar a cómo sabe, se necesita la primera dimensión de x como número de ejemplos de entrenamiento y segunda dimensión como el tamaño de cada ejemplo. De manera similar para la capa de salida.

Licenciado bajo: CC-BY-SA con atribución
scroll top