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