Train de données cible générée à l'intérieur du modèle

voix
0

Comment puis - je obtenir la fonction de perte utilisée par tf.keras.Model.fit(x, y)de comparer deux sorties dans le graphique au lieu d'une sortie avec des données cibles externes fournies, y?

Graphique

Le manuel dit que vous pouvez utiliser tenseurs pour la valeur cible qui ressemble à ce que je veux, mais que vous aussi besoin alors les entrées être tenseurs. Mais mes entrées sont des tableaux numpy et je ne pense pas que je devrais changer cela.

Créé 09/10/2019 à 13:00
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

1 - Facile, mieux - peut-être pas bon pour la mémoire

Pourquoi ne pas simplement obtenir les éléments prévus pour la perte déjà?

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

Cela semble sans aucun doute la meilleure façon si votre mémoire peut gérer cela. modèle plus simple, la formation plus rapide.

Vous pouvez même enregistrer / charger les nouvelles données:

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

2 - Faire la sortie du modèle de la perte et utiliser une perte fictive pour la compilation

Pertes:

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    

Modèle:

#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 - Activer l'exécution avide et faire des boucles de formation sur mesure

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

Créé 09/10/2019 à 16:39
source utilisateur

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