tf.contrib.eager.metrics.Метрика
Метрика хранит состояние для агрегирования статистических данных за период оценки.
Наследуется от: CheckpointableBase
tf.contrib.eager.metrics.Metric(
name=None, use_global_variables=False
)
Пример использования с быстрым выполнением:
m = SomeMetric(...) for input in ...: m(input) print(m.result())
Пример использования с выполнением в графе:
m = SomeMetric(...)
inputs = ... # Some tensors to compute the metric on.
m_update = m(inputs)
# Variables defined in first call, so get the initialization op afterwards.
m_init = m.init_variables() # or tf.compat.v1.global_variables_initializer()
m_result = m.result()
with tf.compat.v1.Session() as sess:
sess.run(m_init)
for input in ...:
sess.run(m_update)
print(sess.run(m_result))
Пример использования с выполнением в графе с заполнителями и feed_dict:
m = SomeMetric(...)
m_placeholder = tf.compat.v1.placeholder(...)
m_update = m(m_placeholder)
# Variables defined in first call, so get the initialization op afterwards.
m_init = m.init_variables() # or tf.compat.v1.global_variables_initializer()
m_result = m.result()
with tf.compat.v1.Session() as sess:
sess.run(m_init)
for input in ...:
sess.run(m_update, feed_dict={m_placeholder: input})
print(sess.run(m_result))
Потомки должны реализовать:
-
build(): Все переменные должны быть созданы в этом методе, вызываяself.add_variable()так:self.var = self.add_variable(...)build() будет вызван при первом вызове__call__(), с теми же аргументами, что иcall(). -
call(): Имеет все обновления переменных, как в: self.var.assign_add(...) -
result(): Вычисляет и возвращает конечное значение метрики из переменных вself.
Потомки могут переопределить aggregate(), но обычно не нужно. Он добавляет состояние из списка метрик того же типа, что и self. (По умолчанию — суммирование всех переменных.) Обратите внимание, что пользователи не должны вызывать aggregate(), это используется инфраструктурой TensorFlow.
| Атрибуты | |
|---|---|
name | |
variables | |
Методы
add_variable
add_variable(
name, shape=None, dtype=None, initializer=None
)
Только для использования потомками Metric.
aggregate
aggregate(
metrics
)
Добавляет состояние из списка метрик.
Реализация по умолчанию суммирует все переменные метрик.
| Аргументы | |
|---|---|
metrics | Список метрик того же типа, что и self. |
| Исключения | |
|---|---|
ValueError | Если метрики содержат недопустимые данные. |
build
build(
*args, **kwargs
)
Метод для создания переменных.
Вызывается __call__() перед call() в первый раз.
| Аргументы | |
|---|---|
*args | |
**kwargs | Аргументы первого вызова __call__(). build() может использовать форму и/или тип этих аргументов при решении, как создать переменные. |
call
call(
*args, **kwargs
)
Накапливает статистику для метрики. Пользователи должны использовать call вместо этого.
Примечание: Эта функция выполняется как функция графа в режиме графа. Это означает: а) Операции с одним и тем же ресурсом выполняются в текстовом порядке. Это должно облегчить выполнение таких задач, как добавление обновлённого значения переменной к другой, например. б) Вам не нужно беспокоиться о сборе операций обновления для выполнения. Все операции обновления, добавленные в граф этой функцией, будут выполнены. В результате код, как правило, будет работать так же с выполнением в графе или с быстрым выполнением.
| Аргументы | |
|---|---|
*args | |
**kwargs | Минимальная партия входных данных для метрики, переданная в __call__(). |
init_variables
init_variables()
Инициализирует переменные этой метрики.
Должен вызываться после создания переменных при первом выполнении __call__(). Если используется выполнение в графе, возвращаемое значение должно быть run() в сессии перед запуском операции, возвращаемой __call__(). (См. пример выше.)
| Возвращает | |
|---|---|
| Если используется выполнение в графе, это возвращает операцию для выполнения инициализации. При быстром выполнении переменные сбрасываются до своих начальных значений как побочный эффект, и эта функция возвращает None. |
result
result()
Вычисляет и возвращает конечное значение метрики.
value
value()
В режиме графа возвращает тензор результата, а в режиме eager — вызываемый объект.
__call__
__call__(
*args, **kwargs
)
Возвращает операцию для выполнения, чтобы обновить эту метрику для этих входных данных.
Возвращает None, если включено быстрое выполнение. Возвращает функцию в режиме графа, если включено выполнение в графе.
| Аргументы | |
|---|---|
*args | |
**kwargs | Минимальная партия входных данных для метрики, передаваемая в call(). |
© 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/eager/metrics/Metric