Я определил нейронную сеть, используя tf.estimator.Estimator, и мне нужно добавить пользовательские операции в слоях.В частности, я хочу нормализовать уровень logit к определенной норме C и затем добавить гауссовский шум к каждому logit независимо.Я делаю это с:
initial_logits = tf.keras.layers.Dense(units=params['num_classes']).apply(y)
l2_normalized_logits = tf.keras.layers.Lambda(lambda x:tf.multiply(tf.math.l2_normalize(x), C)).apply(initial_logits)
gauss = tf.distributions.Normal(loc=0.0, scale=params['logit_noise'])
logits = tf.keras.layers.Lambda(lambda x: tf.add(x, gauss.sample(params['num_classes']))).apply(l2_normalized_logits)
Но я получаю очень странные результаты, используя слой Lambda.
Я использую tenorflow 1.12.