Поезд с целевыми данными генерируется в рамках модели

голоса
0

Как можно получить функцию потерь , используемую tf.keras.Model.fit(x, y)для сравнения двух выходов в графике вместо одного выхода с внешним поставляемыми целевыми данными, y?

График,

Руководство говорит, что вы можете использовать тензоры для заданного значения, которое звучит как то, что я хочу, но что вы тогда нужны также входы быть тензорами. Но мои входы Numpy массивы, и я не думаю, что я должен изменить это.

Задан 09/10/2019 в 13:00
источник пользователем
На других языках...                            


1 ответов

голоса
1

1 - легкий, лучше - может быть, не очень хорошо для памяти

Почему бы не просто получить ожидаемые элементы для уже потерь?

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

Это звучит, безусловно, лучший способ, если ваша память может справиться с этим. Simpler модель, быстрее обучение.

Вы даже можете сохранять / загружать новые данные:

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

2 - Сделать на выходе модели потери и использовать фиктивные потери для компиляции

Потери:

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    

Модель:

#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 - Включить нетерпеливое исполнение и создавать собственные учебные циклы

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

Ответил 09/10/2019 в 16:39
источник пользователем

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