Spec-Zone.ru › TensorFlow 2.4

tf.keras.mixed_precision.experimental.Policy

Просмотреть исходный код на GitHub

Устаревший тип данных политики для слоя Keras.

Наследуется от: Policy

tf.keras.mixed_precision.experimental.Policy(
    name, loss_scale='auto'
)
Предупреждение: Этот класс устарел и будет удален в ближайшее время. Используйте вместо него неэкспериментальный класс tf.keras.mixed_precision.Policy.

Разница между этим классом и неэкспериментальным классом заключается в том, что этот класс имеет поле loss_scale, а неэкспериментальный класс — нет. Масштаб потерь используется только tf.keras.Model.compile, который автоматически оборачивает оптимизатор с LossScaleOptimizer, если оптимизатор не является LossScaleOptimizer. Для неэкспериментального класса Policy Model.compile вместо этого оборачивает оптимизатор с LossScaleOptimizer, если Policy.name равен "mixed_float16".

При десериализации объектов с экспериментальной политикой с помощью функций, таких как tf.keras.utils.deserialize_keras_object, политика будет десериализована как неэкспериментальная tf.keras.mixed_precision.Policy, а масштаб потерь будет безмолвно опущен. Это делается для того, чтобы SavedModels, сгенерированные с экспериментальной политикой, можно было восстановить после удаления экспериментальной политики.

Аргументы
name Строка. Может принимать следующие значения:
  • Любое имя типа данных, например, 'float32' или 'float64'. И тип данных переменной, и тип данных вычислений будут равны этому типу.
  • 'mixed_float16' или 'mixed_bfloat16': тип данных вычислений — float16 или bfloat16, а тип данных переменной — float32. При использовании 'mixed_float16' используется динамический масштаб потерь. Эти политики используются для обучения с смешанной точностью.
loss_scale tf.compat.v1.mixed_precision.LossScale, целое число (которое использует FixedLossScale), строка "dynamic" (которая использует DynamicLossScale) или None (не использует масштаб потерь). По умолчанию "auto". В случае "auto": 1) если name равно "mixed_float16", то используйте loss_scale="dynamic". 2) в противном случае не используйте масштаб потерь. Только tf.keras.Model, а не слои, используют масштаб потерь, и он используется только во время Model.fit, Model.train_on_batch и других аналогичных методах.
Атрибуты
compute_dtype Тип данных вычислений этой политики.

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

Обратите внимание, что даже если тип данных вычислений равен float16 или bfloat16, аппаратные устройства могут не выполнять отдельные сложения, умножения и другие базовые операции с float16 или bfloat16, а вместо этого могут выполнять некоторые из них с float32 для повышения числовой устойчивости. Тип данных вычислений — это тип данных входных и выходных данных операций TensorFlow, выполняемых слоем. Внутренне многие операции TensorFlow будут выполнять определенные внутренние вычисления в float32 или в другом внутреннем формате устройства с большей точностью, чем float16/bfloat16, чтобы повысить числовую устойчивость.

Например, слой tf.keras.layers.Dense при выполнении на GPU с типом данных вычислений float16 передаст входы float16 в tf.linalg.matmul. Однако tf.linalg.matmul будет использовать промежуточные математические вычисления с float32. Преимущество по производительности float16 все еще очевидно, из-за увеличенной пропускной способности памяти и того факта, что современные GPU имеют специализированное оборудование для вычисления matmul на входных данных float16, сохраняя при этом промежуточные вычисления в float32.

loss_scale Возвращает масштаб потерь этой политики.
name Возвращает имя этой политики.
variable_dtype Тип данных переменной этой политики.

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

Регуляризаторы переменных выполняются в типе данных переменной, а не в типе данных вычислений.

Методы

from_config

Просмотреть исходный код

@classmethod
from_config(
    config, custom_objects=None
)

get_config

Просмотреть исходный код

get_config()

© 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/r2.4/api_docs/python/tf/keras/mixed_precision/experimental/Policy

Spec-Zone.ru

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