#tensorflow #deep-learning #neural-network
Вопрос:
Я создал нейронную сеть, используя tensorflow 1.x, как показано ниже:
def coder(x):
layer_1 = tf.nn.relu(tf.add(tf.matmul(x, weights['encoder_h1']),biases['encoder_b1']))
layer_2 = tf.nn.relu(tf.add(tf.matmul(layer_1, weights['encoder_h2']), biases['encoder_b2']))
layer_3 = tf.nn.tanh(tf.add(tf.matmul(layer_2, weights['encoder_h3']),biases['encoder_b3']))
return layer_3
Что мне нужно, так это нормализовать выходные данные этой нейронной сети. Я пытался сделать это вручную с помощью:
layer_4 = (layer_3 * tf.sqrt(tf.cast(tf.shape(layer_3 )[0], dtype=tf.float32))) / tf.norm(layer_3 )
return layer_4
Но я думаю, что этот способ неверен, есть ли способ нормализовать вывод нейронной сети, например, добавить слой нормализации или что-то в этом роде.
Комментарии:
1. Tensorflow 2.0 имеет функцию нормализации выходных данных нейронной сети. Эта функция доступна в tf.keras, то есть
tf.keras.layers.LayerNormalization
. Более подробную информацию о нормализации уровня тензорного потока можно найти здесь . Спасибо!2. @TFer как насчет Tensorflow 1.15 ? есть ли какое-либо решение для этого ?
3. Насколько я понимаю, нормализация доступна только в Tf 2.x.