tf.clip_by_norm
| Просмотреть исходный код на GitHub |
Обрезает значения тензора до максимальной L2-нормы.
tf.clip_by_norm(
t, clip_norm, axes=None, name=None
)
Учитывая тензор t, и максимальное значение обрезки clip_norm, эта операция нормализует t, чтобы его L2-норма была меньше или равна clip_norm, по заданным в axes измерениям. В частности, в случае по умолчанию, когда для вычисления используются все измерения, если L2-норма t уже меньше или равна clip_norm, то t не изменяется. Если L2-норма больше clip_norm, то эта операция возвращает тензор того же типа и формы, что и t, с его значениями, установленными следующим образом:
t * clip_norm / l2norm(t)
В этом случае L2-норма выходного тензора равна clip_norm.
Например, если t является матрицей и axes == [1], то каждая строка выходного значения будет иметь L2-норму меньше или равную clip_norm. Если axes == [0], каждая колонка выходного значения будет обрезана.
Эта операция обычно используется для обрезки градиентов перед их применением с оптимизатором.
| Аргументы | |
|---|---|
t | A Tensor или IndexedSlices. |
clip_norm | A 0-мерный (скалярный) Tensor > 0. Максимальное значение обрезки. |
axes | A 1-мерный (векторный) Tensor типа int32, содержащий измерения, используемые для вычисления L2-нормы. Если None (по умолчанию), используются все измерения. |
name | Имя операции (необязательно). |
| Возвращаемые значения | |
|---|---|
Обрезанный Tensor или IndexedSlices. |
| Исключения | |
|---|---|
ValueError | Если тензор clip_norm не является 0-мерным скалярным тензором. |
TypeError | Если тип данных входного значения не является типом с плавающей точкой или комплексным типом. |
© 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/clip_by_norm