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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top