Come faccio a passare i dati in keras?
-
16-10-2019 - |
Domanda
Al momento sto lottando per capire come dovrei addestrare la mia rete di regressione utilizzando keras. Non sono sicuro di come dovrei passare i miei dati in ingresso alla rete.
Sia i dati di ingresso ed i dati di uscita vengono memorizzati come un elenco di array NumPy.
Ogni matrice di ingresso NumPy è una matrice che ha (400 righe, colonne x) Ogni matrice di uscita NumPy è una matrice che ha (x numero di righe, 13 colonne)
dimensione Quindi ingresso è 400 e l'uscita è 13. Ma come faccio a passare ciascuno di questi insiemi all'interno della lista alla formazione?
# 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')
So che i treni model.fit il modello riportato il parametro, come ci vuole in realtà i dati sembra un po 'come per magia a me, e come si sa che le colonne della matrice A dovrebbero essere mappati le righe della matrice B tale deve essere fatto per tutta la matrice, aggiunto alla lista.
Soluzione
Se si guarda la documentazione Keras, si osserverà che per primi strati del sequenziale modello prende l'input richiesto. Così, per esempio, il primo strato è strato denso con dimensione ingresso come 400. Quindi ogni ingresso dovrebbe essere una matrice di dimensione NumPy 400. È possibile passare una matrice NumPy 2D con dimensioni (x, 400). (Ritengo che x è il numero di esempi di ingresso). L'output ha 13 dimensioni per ciascun documento di uscita e di conseguenza della denso strato finale deve essere model.add(Dense(13))
anziché model.add (Dense (1)).
Venendo a come lo sa, ci vuole la prima dimensione di X come numero di esempi di addestramento e di seconda dimensione come la dimensione di ogni esempio. Similmente per strato di output.