Как выбрать различные подмножества данных из набора данных тензорного потока в прямом проходе? - PullRequest
0 голосов
/ 07 мая 2020

Я хочу обучить ансамбль моделей, используя tf.keras. Прямой проход выглядит примерно так:

    def call(self, inputs, training=None, mask=None):

        mean_predictions = []
        variance_predictions = []
        for idx in range(self.num_models):
            predictions = self.model[idx](inputs, training=training)
            mean_predictions.append(predictions[:, 0])
            variance_predictions.append(tf.math.softplus(predictions[:, 1]))
        mean_stack = tf.stack(mean_predictions)
        variance_stack = tf.stack(variance_predictions)
        model_output = tf.stack([mean_stack, variance_stack])  # [2, num_models, None]
        model_output = tf.transpose(model_output, perm=[0, 2, 1])  # [2, None, num_models]
        return model_output

Однако я бы хотел, чтобы каждый ансамбль использовал разные подмножества данных в каждом прямом проходе. Это возможно? В приведенном выше фрагменте все модели используют один и тот же пакет, поскольку это inputs, переданное через метод tf.keras.Models.fit().

...