Path: blob/master/site/pt-br/lattice/tutorials/keras_layers.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Criando modelos do Keras com camadas do TFL
##Visão geral
Você pode usar camadas do Keras TFL para construir modelos do Keras com monotonicidade e outras restrições de formato. Este exemplo cria e treina um modelo lattice calibrado para o dataset UCI heart usando camadas do TFL.
Em um modelo lattice calibrado, cada característica é transformada por uma camada tfl.layers.PWLCalibration
ou tfl.layers.CategoricalCalibration
, e os resultados são mesclados de maneira não linear usando uma tfl.layers.Lattice
.
Configuração
Instale o pacote do TF Lattice:
Importe os pacotes necessários:
Baixe o dataset UCI Statlog (Heart):
Configure os valores padrão usados para treinamento neste guia:
Modelo sequencial do Keras
Este exemplo cria um modelo sequencial do Keras e só usa camadas do TFL.
As camadas lattice esperam que input[i]
esteja dentro de [0, lattice_sizes[i] - 1.0]
. Portanto, precisamos definir os tamanhos do lattice antes das camadas de calibração para especificar corretamente o intervalo de saída das camadas de calibração.
Usamos uma camada tfl.layers.ParallelCombination
para agrupar camadas de calibração juntas que precisam ser executadas em paralelo para criar um modelo sequencial.
Criamos uma camada de calibração para cada característica e adicionamos à camada de combinação paralela. Para características numéricas, usamos tfl.layers.PWLCalibration
e, para características categóricas, usamos tfl.layers.CategoricalCalibration
.
Em seguida, criamos uma camada lattice para mesclar de maneira não linear as saídas dos calibradores.
Observe que precisamos especificar a monotonicidade do lattice como "increasing" para as dimensões necessárias. A composição com a direção da monotonicidade na calibração resultará na direção correta de ponta a ponta da monotonicidade. Isso inclui a monotonicidade parcial da camada CategoricalCalibration.
Depois, podemos criar um modelo sequencial usando os calibradores combinados e as camadas lattice.
O treinamento funciona da mesma maneira que com qualquer outro modelo do Keras.
Modelo funcional do Keras
Este exemplo usa uma API funcional para a construção do modelo do Keras.
Conforme mencionado na seção anterior, as camadas lattice esperam que input[i]
esteja dentro de [0, lattice_sizes[i] - 1.0]
. Portanto, precisamos definir os tamanhos do lattice antes das camadas de calibração para especificar corretamente o intervalo de saída das camadas de calibração.
Para cada característica, precisamos criar uma camada de entrada seguida por uma camada de calibração. Para características numéricas, usamos tfl.layers.PWLCalibration
e, para características categóricas, usamos tfl.layers.CategoricalCalibration
.
Em seguida, criamos uma camada lattice para mesclar de maneira não linear as saídas dos calibradores.
Observe que precisamos especificar a monotonicidade do lattice como "increasing" (aumentando) para as dimensões necessárias. A composição com a direção da monotonicidade na calibração resultará na direção correta de ponta a ponta da monotonicidade. Isso inclui a monotonicidade parcial da camada tfl.layers.CategoricalCalibration
.
Para dar mais flexibilidade ao modelo, adicionamos uma camada de calibração de saída.
Agora, podemos criar um modelo usando as entradas e saídas.
O treinamento funciona da mesma maneira que com qualquer outro modelo do Keras. Observe que, com nossa configuração, as características de entrada são passadas como tensores separados.