Инициализация Xavier для Tensorflow

TensorFlow

Если веса модели глубокого обучения инициализированы слишком маленькими, сигнал будет постепенно уменьшаться по мере прохождения через каждый слой, и он будет бесполезен.

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

Функция инициализатора Xavier состоит в том, чтобы сделать веса не слишком маленькими при инициализации сети глубокого обучения.

import numpy as np import sklearn.preprocessing as prep import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data def xavier_init(fan_in, fan_out, constant = 1): low = -constant * np.sqrt(6.0 / (fan_in + fan_out)) high = constant * np.sqrt(6.0 / (fan_in + fan_out)) return tf.random_uniform((fan_in, fan_out), minval=low, maxval=high, dtype=tf.float32)

Процесс деривации относится к содержанию равномерного распределения