Tog med måldata som genereres innenfor modellen

stemmer
0

Hvordan kan jeg få tapsfunksjonen som brukes av tf.keras.Model.fit(x, y)for å sammenligne to utganger i grafen i stedet for én utgang med eksternt levert måldata, y?

Graf

Manualen sier at du kan bruke tensorer for målverdien som høres ut som det jeg vil, men at du da også må inngangene til å være tensorer. Men mine innganger er numpy arrays, og jeg tror ikke jeg skal ha til å endre det.

Publisert på 09/10/2019 klokken 13:00
kilden bruker
På andre språk...                            


1 svar

stemmer
1

1 - Enkel, best - kanskje ikke bra for hukommelse

Hvorfor ikke bare få de forventede elementer for tapet allerede?

new_y_train = non_trainable_ops_model.predict(original_y_train)   
nn_model.fit(x_train, new_y_train)

Dette høres definitivt den beste måten hvis hukommelsen kan håndtere dette. Enklere modell, raskere trening.

Du kan også lagre / laste nye data:

np.save(name, new_y_train)   
new_y_train = np.load(name)

2 - Lag modellen utgang tapet og bruke en dummy tap for kompilering

Tap:

def dummy_loss(true, pred):
    return pred

def true_loss(x):
    true, pred = x

    return loss_function(true, pred) #you can probably from keras.losses import loss_function    

Modell:

#given
nn_model = create_nn_model()
non_trainable_ops_model = create_nto_model()

nn_input = Input(nn_input_shape)
nto_input = Input(nto_input_shape)

nn_outputs = nn_model(nn_input)
nto_outputs = non_trainable_ops_model(nto_input)

loss = Lambda(true_loss)([nto_outputs, nn_outputs])

training_model = Model([nn_input, nto_input], loss)
training_model.compile(loss = dummy_loss, ...)

training_model.fit([nn_x_train, nto_x_train], np.zeros((len(nn_x_train),)))

3 - Aktiver ivrige gjennomføring og lage tilpassede opplærings sløyfer

https://www.tensorflow.org/tutorials/customization/custom_training_walkthrough

Svarte 09/10/2019 kl. 16:39
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more