Spec-Zone.ru › TensorFlow 1.15

tf.contrib.layers.legacy_fully_connected

Добавляет параметры для слоя полносвязной нейронной сети и возвращает выходной результат.

tf.contrib.layers.legacy_fully_connected(
    x, num_output_units, activation_fn=None,
    weight_init=initializers.xavier_initializer(), bias_init=tf.zeros_initializer(),
    name=None, weight_collections=(ops.GraphKeys.WEIGHTS,),
    bias_collections=(ops.GraphKeys.BIASES,),
    output_collections=(ops.GraphKeys.ACTIVATIONS,), trainable=True,
    weight_regularizer=None, bias_regularizer=None
)

Слой полносвязной нейронной сети обычно определяется как матричное умножение: y = f(w * x + b) где f задается как activation_fn. Если activation_fn равно None, возвращается результат y = w * x + b.

Если x имеет форму [\(\text{dim}_0, \text{dim}_1, ..., \text{dim}_n\)] с более чем 2 измерениями (\(n > 1\)), то матричное умножение повторяется по первым измерениям. Результат r — это тензор с формой [\(\text{dim}_0, ..., \text{dim}_{n-1},\) num_output_units], где \( r_{i_0, ..., i_{n-1}, k} = \sum_{0 \leq j < \text{dim}_n} x_{i_0, ... i_{n-1}, j} \cdot w_{j, k}\). Это достигается путем изменения формы x на 2-мерную [\(\text{dim}_0 \cdot ... \cdot \text{dim}_{n-1}, \text{dim}_n\)] перед матричным умножением и последующим изменением формы на [\(\text{dim}_0, ..., \text{dim}_{n-1},\) num_output_units].

Этот оператор создает w и необязательно b. Сдвиг (b) можно отключить, установив bias_init в None.

Создание переменных совместимо с tf.compat.v1.variable_scope и может быть повторно использовано с tf.compat.v1.variable_scope или tf.compat.v1.make_template.

Большинство деталей создания переменных могут быть контролированы путем задания инициализаторов (weight_init и bias_init) и коллекций, в которые будут помещены созданные переменные (weight_collections и bias_collections; обратите внимание, что переменные всегда добавляются в коллекцию VARIABLES). Выходной результат слоя можно поместить в пользовательские коллекции с помощью output_collections. Аргументы коллекций по умолчанию WEIGHTS, BIASES и ACTIVATIONS, соответственно.

Регуляризацию по слоям можно указать, установив weight_regularizer и bias_regularizer, которые применяются к весам и смещениям соответственно, и чьи результаты добавляются в коллекцию REGULARIZATION_LOSSES.

Аргументы
x Входной Tensor.
num_output_units Размер выходного значения.
activation_fn Функция активации, по умолчанию установлена в None для пропуска и сохранения линейной активации.
weight_init Необязательная инициализация весов, по умолчанию xavier_initializer.
bias_init Инициализатор для смещения, по умолчанию 0. Устанавливается в None для отключения смещения.
name Имя для этой операции используется для именования операций и поиска переменных. Если указано, оно должно быть уникальным для этого контекста, в противном случае будет создано уникальное имя, начинающееся с "fully_connected". Подробнее см. tf.compat.v1.variable_scope.
weight_collections Список графических коллекций, в которые добавляются веса.
bias_collections Список графических коллекций, в которые добавляются смещения.
output_collections Список графических коллекций, в которые добавляются выходные данные.
trainable Если True также добавляет переменные в графическую коллекцию GraphKeys.TRAINABLE_VARIABLES (см. tf.Variable).
weight_regularizer Регуляризатор, например, результат l1_regularizer или l2_regularizer. Используется для весов.
bias_regularizer Регуляризатор, например, результат l1_regularizer или l2_regularizer. Используется для смещений.
Возвращает
Выходной результат слоя полносвязной нейронной сети.
Исключения
ValueError Если у x ранг меньше 2 или его последнее измерение не задано.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/layers/legacy_fully_connected

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API