tf.keras: подача дополнительных значений в model.fit - PullRequest
0 голосов
/ 15 апреля 2019

Скажем, у вас есть, например, логический 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 с таким макетом?

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

...