0

Der Eingang ist ein Array variabler Größe. Ich kann nur jeweils ein Beispiel in train_model bearbeiten. Ich möchte die Summe der Ziele für die Elemente im Stapel ansammeln und dann Regularisierung und Gradientenabstieg anwenden.theano - wie man viele der gleichen Funktion hat

Momentan ist dies die Trainingsphase, in der Aktualisierungen für jedes Element xi durchgeführt werden.

for epoch in range(n_epochs): 
minibatch_avg_cost = 0 
for xi in dataset.get_next_xi(batch_size): 
    minibatch_avg_cost += train_model(xi) 

    print(minibatch_avg_cost) 

Wie kann ich Ergebnisse von train_model (xi) für die Anzahl der Elemente in der Charge und tut dann das Updates?

Antwort

0

Verwenden Sie einfach alle Elemente in dataset.get_next_xi(batch_size) als Eingabe und erstellen Sie eine theano-Funktion, um die Durchschnittskosten (statt nur einer Kosten) zu berechnen und die Aktualisierungen mit den Durchschnittskosten durchzuführen. Sie können den Beispielcode aus here

sehen sie Theanos Funktion von Zugmodell wie folgt verwenden:

train_model = theano.function(
    inputs=[index], 
    outputs=cost, 
    updates=updates, 
    givens={ 
     x: train_set_x[index * batch_size: (index + 1) * batch_size], 
     y: train_set_y[index * batch_size: (index + 1) * batch_size] 
    } 
) 

mit cost ist durchschnittlichen Kosten der Datensätze Batch