tfa.metrics.KendallsTauC  | Complementos do TensorFlow (2023)

tfa.metrics.KendallsTauC | Complementos do TensorFlow (1)Veja a fonte no GitHub

Calcula o coeficiente de correlação de classificação Tau-c de Kendall.

tfa.metrics.KendallsTauC( actual_min: float = 0.0, actual_max: float = 1.0, preds_min: float = 0.0, preds_max: float = 1.0, actual_cutpoints: int = 100, preds_cutpoints: int = 100, name: str = None, dtype:tfa.types.AcceptableDTypes= Nenhum)

Uso:

reais = tf.constant([12, 2, 1, 12, 2], dtype=tf.int32)preds = tf.constant([1, 4, 7, 1, 0], dtype=tf.int32)m = tfa.metrics.KendallsTauC(0, 13, 0, 8)m.update_state(reais, preds)m.result().numpy()-0,48000002

argumentos

real_mino limite inferior inclusivo em valores reais.
real_maxo limite superior exclusivo em valores do real.
preds_mino limite inferior inclusivo em valores de preds.
preds_maxo limite superior exclusivo em valores de preds.
pontos de corte reaiso número de divisões a serem criadas no intervalo real, o padrão é 100.
preds_cutpointso número de divisões a serem criadas no intervalo preds, o padrão é 100.
nome(opcional) Nome da string da instância da métrica
dtype(opcional) Tipo de dados do resultado da métrica. O padrão éNenhum

Atributos

Activity_regularizerFunção regularizadora opcional para a saída desta camada.
compute_dtypeO dtype dos cálculos da camada.

Isso é equivalente aLayer.dtype_policy.compute_dtype. A menos que seja usada precisão mista, isso é o mesmo queLayer.dtype, o tipo d dos pesos.

As camadas convertem automaticamente suas entradas para o tipo d de computação, o que faz com que os cálculos e a saída também estejam no tipo d de computação. Isso é feito pela classe Layer base emLayer.call, portanto, você não precisa inserir esses moldes se estiver implementando sua própria camada.

As camadas geralmente executam certos cálculos internos com maior precisão quandocompute_dtypeé float16 ou bfloat16 para estabilidade numérica. A saída ainda será normalmente float16 ou bfloat16 em tais casos.

dtypeO dtype dos pesos da camada.

Isso é equivalente aLayer.dtype_policy.variable_dtype. A menos que seja usada precisão mista, isso é o mesmo queLayer.compute_dtype, o tipo de cálculos da camada.

dtype_policyA política dtype associada a esta camada.

Esta é uma instância detf.keras.mixed_precision.Policy.

dinâmicoSe a camada é dinâmica (somente ansiosa); definido no construtor.
entradaRecupera o(s) tensor(es) de entrada de uma camada.

Aplicável apenas se a camada tiver exatamente uma entrada, ou seja, se estiver conectado a uma camada de entrada.

input_specInputSpecinstância(s) descrevendo o formato de entrada para esta camada.

Ao criar uma subclasse de camada, você pode definirself.input_specpara permitir que a camada execute verificações de compatibilidade de entrada quando for chamada. Considere umConv2Dcamada: só pode ser chamada em um único tensor de entrada de classificação 4. Como tal, você pode definir, em__iniciar__():

self.input_spec = tf.keras.layers.InputSpec(ndim=4)

Agora, se você tentar chamar a camada em uma entrada que não seja de classificação 4 (por exemplo, uma entrada de forma(2,), ele gerará um erro formatado corretamente:

ValueError: A entrada 0 da camada conv2d é incompatível com a camada: esperado ndim=4, encontrado ndim=1. Forma completa recebida: [2]

Verificações de entrada que podem ser especificadas viainput_specincluir:

  • Estrutura (por exemplo, uma única entrada, uma lista de 2 entradas, etc.)
  • Forma
  • Classificação (homem)
  • Tipo D

Para mais informações, vejatf.keras.layers.InputSpec.

perdasLista de perdas adicionadas usando oadd_loss()API.

Os tensores de regularização de variáveis ​​são criados quando esta propriedade é acessada, por isso é muito seguro: acessandoperdasdebaixo detf.GradientTapeirá propagar gradientes de volta para as variáveis ​​correspondentes.

class MyLayer(tf.keras.layers.Layer):def chamada(auto, entradas):self.add_loss(tf.abs(tf.reduce_mean(entradas)))entradas de retornol = MinhaCamada()l(np.ones((10, 1)))l.perdas[1.0]
entradas = tf.keras.Input(forma=(10,))x = tf.keras.layers.Dense(10)(entradas)saídas = tf.keras.layers.Dense(1)(x)modelo = tf.keras.Model(entradas, saídas)# Regularização da atividade.len(model.perdas)0model.add_loss(tf.abs(tf.reduce_mean(x)))len(model.perdas)1
entradas = tf.keras.Input(forma=(10,))d = tf.keras.layers.Dense(10, kernel_initializer='ones')x = d(entradas)saídas = tf.keras.layers.Dense(1)(x)modelo = tf.keras.Model(entradas, saídas)# Regularização do peso.model.add_loss(lambda: tf.reduce_mean(d.kernel))model.losses[]
MétricasLista de métricas adicionadas usando oadd_metric()API.
input = tf.keras.layers.Input(shape=(3,))d = tf.keras.layers.Dense(2)saída = d(entrada)d.add_metric(tf.reduce_max(saída), nome='max')d.add_metric(tf.reduce_min(saída), nome='min')[m.name para m em d.metrics]['max', 'min']
nomeNome da camada (string), definido no construtor.
name_scopeRetorna umtf.name_scopeinstância para esta classe.
pesos não_treináveisLista de todos os pesos não treináveis ​​rastreados por esta camada.

Pesos não treináveis ​​sãonãoatualizado durante o treinamento. Espera-se que sejam atualizados manualmente emchamar().

saídaRecupera o(s) tensor(es) de saída de uma camada.

Aplicável apenas se a camada tiver exatamente uma saída, ou seja, se estiver conectado a uma camada de entrada.

submódulosSequência de todos os submódulos.

Submódulos são módulos que são propriedades deste módulo, ou encontrados como propriedades de módulos que são propriedades deste módulo (e assim por diante).

a = tf.Module()b = tf.Module()c = tf.Module()a.b = bb.c = clista(a.submodules) == [b, c]Verdadeirolista(b.submódulos) == [c]Verdadeirolista(c.submodules) == []Verdadeiro
suporta_mascaramentoSe esta camada suporta o cálculo de uma máscara usandocomputa_mask.
treinável
pesos_treináveisLista de todos os pesos treináveis ​​rastreados por esta camada.

Os pesos treináveis ​​são atualizados via gradiente descendente durante o treinamento.

variável_dtypePseudônimo deLayer.dtype, o dtype dos pesos.
pesosRetorna a lista de todas as variáveis/pesos da camada.

Métodos

add_loss

add_loss(perdas, **kwargs)

Adicione o(s) tensor(es) de perda, potencialmente dependentes das entradas da camada.

Algumas perdas (por exemplo, perdas de regularização de atividade) podem ser dependentes das entradas passadas na chamada de uma camada. Portanto, ao reutilizar a mesma camada em diferentes entradasaeb, algumas entradas emcamada.perdaspode ser dependente deae alguns emb. Esse método automaticamente acompanha as dependências.

Este método pode ser usado dentro de uma camada de subclasse ou modelochamarfunção, caso em queperdasdeve ser um tensor ou uma lista de tensores.

Exemplo:

class MyLayer(tf.keras.layers.Layer): def call(self, inputs): self.add_loss(tf.abs(tf.reduce_mean(inputs))) return inputs

O mesmo código funciona no treinamento distribuído: a entrada paraadd_loss()é tratado como uma perda de regularização e é calculada a média entre as réplicas pelo loop de treinamento (ambos integradosModel.fit()e loops de treinamento personalizados compatíveis).

Oadd_lossO método também pode ser chamado diretamente em um Modelo Funcional durante a construção. Nesse caso, qualquer tensor de perda passado para este modelo deve ser simbólico e poder ser rastreado até o modeloEntradas. Essas perdas passam a fazer parte da topologia do modelo e são rastreadas emget_config.

Exemplo:

entradas = tf.keras.Input(shape=(10,))x = tf.keras.layers.Dense(10)(entradas)saídas = tf.keras.layers.Dense(1)(x)model = tf.keras .Model(inputs, outputs)# Activity regularization.model.add_loss(tf.abs(tf.reduce_mean(x)))

Se este não for o caso da sua perda (se, por exemplo, a sua perda se referir a umVariávelde uma das camadas do modelo), você pode agrupar sua perda em um lambda sem argumentos. Essas perdas não são rastreadas como parte da topologia do modelo, pois não podem ser serializadas.

Exemplo:

entradas = tf.keras.Input(shape=(10,))d = tf.keras.layers.Dense(10)x = d(entradas)saídas = tf.keras.layers.Dense(1)(x)model = tf.keras.Model(inputs, outputs)# Weight regularization.model.add_loss(lambda: tf.reduce_mean(d.kernel))
argumentos
perdasTensor de perda ou lista/tupla de tensores. Em vez de tensores, as perdas também podem ser chamadas de argumento zero que criam um tensor de perda.
**quargsUsado apenas para compatibilidade com versões anteriores.

add_metric

add_metric(valor, nome=Nenhum, **kwargs)

Adiciona tensor métrico à camada.

Este método pode ser usado dentro dochamar()método de uma camada subclassificada ou modelo.

class MyMetricLayer(tf.keras.layers.Layer): def __init__(self): super(MyMetricLayer, self).__init__(name='my_metric_layer') self.mean = tf.keras.metrics.Mean(name='metric_1' ) def call(self, inputs): self.add_metric(self.mean(inputs)) self.add_metric(tf.reduce_sum(inputs), name='metric_2') return inputs

Este método também pode ser chamado diretamente em um Modelo Funcional durante a construção. Nesse caso, qualquer tensor passado para este modelo deve ser simbólico e poder ser rastreado até o modeloEntradas. Essas métricas tornam-se parte da topologia do modelo e são rastreadas quando você salva o modelo viasalvar().

entradas = tf.keras.Input(shape=(10,))x = tf.keras.layers.Dense(10)(entradas)saídas = tf.keras.layers.Dense(1)(x)model = tf.keras .Model(entradas, saídas)model.add_metric(math_ops.reduce_sum(x), name='metric_1')
entradas = tf.keras.Input(shape=(10,))x = tf.keras.layers.Dense(10)(entradas)saídas = tf.keras.layers.Dense(1)(x)model = tf.keras .Model(entradas, saídas)model.add_metric(tf.keras.metrics.Mean()(x), name='metric_1')
argumentos
valorTensor métrico.
nomeNome da métrica de string.
**quargsArgumentos de palavras-chave adicionais para compatibilidade com versões anteriores.Valores aceitos:agregação- Quando ovalortensor fornecido não é o resultado da chamada de umKeras. Métricainstância, ele será agregado por padrão usando umkeras.Metric.Mean.

construir

build(forma_de_entrada)

Cria as variáveis ​​da camada (para implementadores de subclasse).

Este é um método que implementadores de subclasses deCamadaouModelopodem substituir se precisarem de uma etapa de criação de estado entre a instanciação da camada e a chamada da camada. Ele é invocado automaticamente antes da primeira execução dechamar().

Isso é normalmente usado para criar os pesos deCamadasubclasses (a critério do implementador da subclasse).

argumentos
input_shapeInstancia deTensorForma, ou lista de instâncias deTensorFormase a camada espera uma lista de entradas (uma instância por entrada).

build_from_config

build_from_config (configuração)

computa_mask

compute_mask (entradas, máscara = Nenhum)

Calcula um tensor de máscara de saída.

argumentos
entradasTensor ou lista de tensores.
mascararTensor ou lista de tensores.
devoluções
Nenhum ou um tensor (ou lista de tensores, um por tensor de saída da camada).

compute_output_shape

computer_output_shape (input_shape)

Calcula a forma de saída da camada.

Este método fará com que o estado da camada seja construído, caso isso não tenha acontecido antes. Isso requer que a camada seja usada posteriormente em entradas que correspondam à forma de entrada fornecida aqui.

argumentos
input_shapeForma tupla (tupla de números inteiros) outf.TensorShape,ou estrutura de tuplas de forma /tf.TensorShapeinstâncias (uma por tensor de saída da camada). As tuplas de forma podem incluir None para dimensões livres, em vez de um número inteiro.
devoluções
Atf.TensorShapeinstância ou estrutura detf.TensorShapeinstâncias.

count_params

count_params()

Conte o número total de escalares que compõem os pesos.

devoluções
Uma contagem inteira.
Levanta
ValueErrorse a camada ainda não estiver construída (neste caso, seus pesos ainda não foram definidos).

from_config

@classmethodfrom_config (configuração)

Cria uma camada a partir de sua configuração.

Este método é o inverso doget_config,capaz de instanciar a mesma camada do configdictionary. Não lida com conectividade de camada (tratada pela rede), nem pesos (tratada porset_weights).

argumentos
configuraçãoUm dicionário Python, geralmente a saída de get_config.
devoluções
Uma instância de camada.

get_build_config

get_build_config()

get_config

Ver fonte

get_config()

Retorna a configuração serializável da métrica.

get_weights

get_weights()

Retorna os pesos atuais da camada, como matrizes NumPy.

Os pesos de uma camada representam o estado da camada. Essa função retorna valores de peso treináveis ​​e não treináveis ​​associados a essa camada como uma lista de arrays NumPy, que por sua vez podem ser usados ​​para carregar o estado em camadas com parâmetros semelhantes.

Por exemplo, umDensolayer retorna uma lista de dois valores: a kernelmatrix e o vetor bias. Estes podem ser usados ​​para definir os pesos de outroDensocamada:

layer_a = tf.keras.layers.Dense(1,kernel_initializer=tf.constant_initializer(1.))a_out = layer_a(tf.convert_to_tensor([[1., 2., 3.]]))layer_a.get_weights()[matriz([[1.],[1.],[1.]], dtype=float32), array([0.], dtype=float32)]layer_b = tf.keras.layers.Dense(1,kernel_initializer=tf.constant_initializer(2.))b_out = layer_b(tf.convert_to_tensor([[10., 20., 30.]]))layer_b.get_weights()[matriz([[2.],[2.],[2.]], dtype=float32), array([0.], dtype=float32)]layer_b.set_weights(layer_a.get_weights())layer_b.get_weights()[matriz([[1.],[1.],[1.]], dtype=float32), array([0.], dtype=float32)]
devoluções
Pesos valores como uma lista de matrizes NumPy.

mesclar_estado

merge_state (métricas)

Mescla o estado de uma ou mais métricas.

Este método pode ser usado por sistemas distribuídos para mesclar o estado computado por diferentes instâncias de métricas. Normalmente, o estado será armazenado na forma dos pesos da métrica. Por exemplo, a métrica atf.keras.metrics.Mean contém uma lista de dois valores de ponderação: um total e uma contagem. Se houvesse duas instâncias de atf.keras.metrics.Accuracy em que cada estado parcial agregado independentemente para um cálculo de precisão geral, esses dois estados de métrica poderiam ser combinados da seguinte forma:

m1 = tf.keras.metrics.Accuracy()_ = m1.update_state([[1], [2]], [[0], [2]])
m2 = tf.keras.metrics.Accuracy()_ = m2.update_state([[3], [4]], [[3], [4]])
m2.merge_state([m1])m2.result().numpy()0,75
argumentos
Métricasum iterável de métricas. As métricas devem ter estado compatível.
Levanta
ValueErrorSe o iterável fornecido não contiver métricas correspondentes às especificações necessárias da métrica.

reset_state

Ver fonte

reset_state()

Redefine todas as variáveis ​​de estado da métrica.

reset_states

Ver fonte

reset_states()

resultado

Ver fonte

resultado()

Calcula e retorna o tensor do valor métrico escalar ou um dict de escalares.

A computação do resultado é uma operação idempotente que simplesmente calcula o valor da métrica usando as variáveis ​​de estado.

devoluções
Um tensor escalar ou um dicionário de tensores escalares.

set_weights

set_weights (pesos)

Define os pesos da camada, de matrizes NumPy.

Os pesos de uma camada representam o estado da camada. Essa função define os valores de peso de matrizes numpy. Os valores de peso devem ser passados ​​na ordem em que são criados pela camada. Observe que os pesos da camada devem ser instanciados antes de chamar esta função, chamando a camada.

Por exemplo, umDensolayer retorna uma lista de dois valores: a kernelmatrix e o vetor bias. Estes podem ser usados ​​para definir os pesos de outroDensocamada:

layer_a = tf.keras.layers.Dense(1,kernel_initializer=tf.constant_initializer(1.))a_out = layer_a(tf.convert_to_tensor([[1., 2., 3.]]))layer_a.get_weights()[matriz([[1.],[1.],[1.]], dtype=float32), array([0.], dtype=float32)]layer_b = tf.keras.layers.Dense(1,kernel_initializer=tf.constant_initializer(2.))b_out = layer_b(tf.convert_to_tensor([[10., 20., 30.]]))layer_b.get_weights()[matriz([[2.],[2.],[2.]], dtype=float32), array([0.], dtype=float32)]layer_b.set_weights(layer_a.get_weights())layer_b.get_weights()[matriz([[1.],[1.],[1.]], dtype=float32), array([0.], dtype=float32)]
argumentos
pesosuma lista de matrizes NumPy. O número de arrays e sua forma devem corresponder ao número das dimensões dos pesos da camada (ou seja, deve corresponder à saída deget_weights).
Levanta
ValueErrorSe a lista de pesos fornecida não corresponder às especificações da camada.

update_state

Ver fonte

update_state(y_true, y_pred, sample_weight=None)

Atualizaçõesm,nrow,ncolrespectivamente, os histogramas conjuntos e marginais de (y_true,y_pred)

with_name_scope

@classmethodwith_name_scope (método)

Decorator para inserir automaticamente o escopo do nome do módulo.

class MeuMódulo(tf.Módulo):@tf.Module.with_name_scopedef __call__(self, x):se não hasattr(self, 'w'):self.w = tf.Variable(tf.random.normal([x.shape[1], 3]))return tf.matmul(x, self.w)

Usar o módulo acima produziriatf.Variávelareiatf.Tensors cujos nomes incluíam o nome do módulo:

mod = MeuMódulo()mod(tf.ones([1, 2]))mod.wnumpy=..., dtype=float32)>
argumentos
métodoO método para embrulhar.
devoluções
O método original agrupado de forma a entrar no escopo do nome do módulo.

__chamar__

__call__( *args, **kwargs)

Acumula estatísticas e, em seguida, calcula o valor do resultado métrico.

argumentos
*args
**quargsUm mini-lote de entradas para a métrica, repassado paraatualizar_estado().
devoluções
O tensor de valor métrico.
Top Articles
Latest Posts
Article information

Author: Aracelis Kilback

Last Updated: 07/03/2023

Views: 5273

Rating: 4.3 / 5 (64 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Aracelis Kilback

Birthday: 1994-11-22

Address: Apt. 895 30151 Green Plain, Lake Mariela, RI 98141

Phone: +5992291857476

Job: Legal Officer

Hobby: LARPing, role-playing games, Slacklining, Reading, Inline skating, Brazilian jiu-jitsu, Dance

Introduction: My name is Aracelis Kilback, I am a nice, gentle, agreeable, joyous, attractive, combative, gifted person who loves writing and wants to share my knowledge and understanding with you.