tf.keras: передача дополнительных значений в model.fit

Скажем, у вас есть, например. логическое значение tf.placeholder, и вы хотите передать его при вызове Model.fit. Как бы вы это сделали? Ниже приведен исполняемый фиктивный код, иллюстрирующий проблему.

import tensorflow as tf
from tensorflow.keras.layers import Dense, Input, Flatten
from tensorflow.keras.models import Model
# A boolean value that should have some effect of something
do_stuff = tf.placeholder(tf.bool)
# If do_stuff is true, return tf.ones else tf.zeros, and a 1 or 0 label
if_dostuff = lambda: [tf.ones((5, 5)), tf.constant(1)]
if_not_dostuff = lambda: [tf.zeros((5, 5)), tf.constant(0)]
X, Y_true = tf.cond(do_stuff, if_dostuff, if_not_dostuff)
# Make some dummy labels
# Do some random model operation
X_input = Input(shape=(5, 5))
layer_mod = Flatten()(X_input)
layer_mod = Dense(1)(layer_mod)
out_model = Model(inputs=[X_input], outputs=[layer_mod])
# Compile model
out_model.compile(
    optimizer=tf.keras.optimizers.Adam(),
    loss=tf.keras.metrics.binary_crossentropy
)
### Other ops with other models and summaries etc. ###
out_model.fit(...) # What do I do at this point?

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

Как я могу сделать удивительный интерфейс model.fit keras с таким макетом?

Альтернативой может быть то, что я задаю в этом вопросе


person Andreas Storvik Strauman    schedule 15.04.2019    source источник
comment
Где вы хотите использовать логическое значение? Это в проигрыше?   -  person Anakin    schedule 15.04.2019
comment
@Anakin Пожалуйста, прочитайте текст сразу под кодом :) Также - здесь он используется при получении X,Y_true.   -  person Andreas Storvik Strauman    schedule 15.04.2019
comment
Чего я не понимаю, так это... если ваше логическое значение не зависит от предсказания модели, вы уже можете получить свое X, Y_true в соответствии с логическим значением и передать его своей функции fit. Итак, зачем вам логическое значение в fit? А если это зависит от обучения, то как?   -  person Anakin    schedule 15.04.2019
comment
@ Анакин, я ценю, что ты пытаешься помочь. Я не использую логическое значение. Использование boolean просто для простоты. На самом деле у меня есть строки, которые являются дескрипторами итераторов, которые нужно кормить (в зависимости от того, какой набор данных я хочу обучить). Это также то, что я написал прямо под кодом. Модель, над которой я работаю, зависит от обучения, поскольку значения в итераторах не определены.   -  person Andreas Storvik Strauman    schedule 15.04.2019