Trein met een doelgroep van gegevens die worden gegenereerd binnen het model

stemmen
0

Hoe kan ik het verlies functie die wordt gebruikt door de tf.keras.Model.fit(x, y)twee uitgangen te vergelijken in de grafiek in plaats van een uitgang met extern toegevoerde gegevens over een doel, y?

Grafiek

De handleiding zegt dat je tensors voor streefwaarde wat klinkt als wat ik wil gebruiken, maar dat je dan ook moeten de ingangen tensoren zijn. Maar mijn ingangen zijn numpy arrays en ik denk niet dat ik zou moeten hebben om dat te veranderen.

De vraag is gesteld op 09/10/2019 om 13:00
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

1 - Eenvoudig, de beste - misschien niet goed voor het geheugen

Waarom niet gewoon de verwachte items voor het verlies al te krijgen?

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

Dit klinkt zeker de beste manier als je geheugen je dit aankan. Eenvoudiger model, sneller training.

U kunt zelfs opslaan / de nieuwe gegevens te laden:

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

2 - Maak de modeluitkomsten het verlies en het gebruik van een dummy verlies voor het samenstellen

Verliezen:

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    

Model:

#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 - Schakel enthousiast uitvoering en maken gepersonaliseerde training loops

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

antwoordde op 09/10/2019 om 16:39
bron van user

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