РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pytfSpTrBc 42 of 89 menu
◀ ▶

Два класса в TensorFlow

Когда у объекта ровно два исхода, метки задают числами 0 и 1, а сеть выдаёт одно сырое значение на объект. Ошибка двух классов сопоставляет такие метки с логитами; класс BinaryCrossentropy рассчитан на этот случай.

Сигмоид перед ошибкой не ставят: при создании объекта указывают параметр from_logits со значением истины. Создадим ошибку, зададим метки и логиты, выведем результат:

import tensorflow as tf loss_fn = tf.keras.losses.BinaryCrossentropy( from_logits=True ) labels = tf.constant([0.0, 1.0, 1.0]) logits = tf.constant([-1.0, 2.0, 0.5]) print(loss_fn(labels, logits)) # выведет tf.Tensor(0.30475557, shape=(), dtype=float32)

Порядок аргументов прежний: сначала эталон, затем предсказание. На двух объектах ошибка считается так же:

import tensorflow as tf loss_fn = tf.keras.losses.BinaryCrossentropy( from_logits=True ) labels = tf.constant([1.0, 0.0]) logits = tf.constant([0.8, -0.3]) print(loss_fn(labels, logits)) # выведет tf.Tensor(0.46272796, shape=(), dtype=float32)

Задайте метки [1.0, 0.0, 1.0] и сырые выходы [2.0, -1.0, 0.0]. Выведите одно число - значение ошибки по этим данным.

Создайте метки [0.0, 1.0] и сырые выходы [-0.5, 1.5]. Выведите итоговую ошибку одним числом.

Соберите метку [0.0] и сырой выход [3.0] для одного объекта. Выведите одно число - ошибку для этой пары.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить