IST - Física HowTo - Informática 12:41
2025-12-22
  Bibliotecas
 
     Inteligência artificial
 
        Keras
 
           Utils
 
           Layers
 
           Models
 
           Exemplos
 

Keras — Layers

Sumário
1. Introdução
2. "Concatenate:" Faz a concatenação das entradas que recebe
3. "Conv1D/2D/3D:" Cria uma camada de convolução (1,2,3-Dim)
4. "Conv1D/2D/3DTranspose:" Cria uma camada de convolução transposta (1,2,3-Dim)
5. "Dense:" Cria uma camada de densa
6. "Embedding:" Converte números inteiros positivos (índices) em vectores densos de tamanho fixo
7. "Flatten:" Aplana a entrada no que se refere ao input, sem alterar a dimensão do lote
8. "GlobalMaxPool1D/2D/3D:"
9. "LSTM:" Cria uma camada de memória de longo prazo
10. "MaxPooling1D/2D/3D:" Reduz a resolução da entrada (1,2,3-Dim)
11. "Reshape:" Redimensiona uma camada tendo em conta que o número total de elementos se deve manter
12. "Rescaling:" Faz o reescalamento dos valores de entrada (pré-processamento)
13. "UpSampling1D/2D/3D:" Aumenta o tamanho de uma camada (1,2,3-Dim)
14. Links úteis
Início

1. Introdução

"Layer" é uma classe do "Keras". Usualmente, por razões de comodidade, faz-se:
from keras import layers
As camadas (layers) são blocos de construção indicadas quando se cria o modelo ou podem-se ir acrescentando uma a uma.
Uma camada contém os "pesos" (weights) que fazem a transformação das entradas em saídas. As variáveis "w" e "b" dizem respeito, respectivamente, às transições entre camadas e ao viés (bias).
Início

2. "Concatenate:" Faz a concatenação das entradas que recebe

layers.Concatenate (axis=-1, **kwargs)
Esta função recebe como entrada uma lista de tensores, todos com o mesmo formato e retorna um tensor que é a concatenação das entradas.
Ver Keras: Concatenate.
Início

3. "Conv1D/2D/3D:" Cria uma camada de convolução (1,2,3-Dim)

layers.Conv1D/2D/3D (filters, kernel_size, ...)
Cria uma camada de convolução, respectivamente, de uma, duas ou três dimensões em que "filters" é o número de filtros convolucionais dessa camada (esses filtros gerados automaticamente e permitem a detecção de determinadas características das imagens (aresta. texturas, ...)) e "kernel_size" especifica o tamanho da janela de convulção.
Exemplo a duas dimensões com um filtro de 3x3 e função de activação "relu":
layers.Conv2D(32, 3, activation='relu')
Nota: O inverso de uma camada "layers.Conv?D" é uma camada "layers.Conv?DTranspose".
Ver CS231n Deep Learning for Computer Vision.
Início

4. "Conv1D/2D/3DTranspose:" Cria uma camada de convolução transposta (1,2,3-Dim)

layers.Conv1D/2D/3DTranspose (filters, kernel_size, ...)
É uma camada de convolução transposta de dimensão respectivamente um, dois ou três. É uma camada que faz o inverso de "layers.Conv?D"
A necessidade de convoluções transpostas surge, geralmente, do desejo de usar uma transformação que ocorre no sentido oposto ao de uma convolução normal, ou seja, a partir de algo que tenha a forma da saída de alguma convolução para algo que tenha a forma da sua entrada, mantendo um Padrão de conectividade compatível com a referida convolução.
Início

5. "Dense:" Cria uma camada de densa

layers.Dense (units, ...)
Uma camada "Dense" é aquela em que são feitas todas as ligações à camada seguinte. Por defeito é implementada a operação:
output = activation(dot(input, kernel) + bias)
O primeiro argumento, "units", é a dimensionalidade do espaço de saída, os restantes devem ser explicitados pelo seu indicador (ver layers.Dense). Exemplo (em que a função de activação é "relu"):
layers.Dense(32, activation='relu')
Início

6. "Embedding:" Converte números inteiros positivos (índices) em vectores densos de tamanho fixo

layers.Embedding(input_dim, output_dim, ...)
Converte números inteiros positivos (índices) em vectores densos de tamanho fixo. Em que "input_dim" é o tamanho do vocabulário, ou seja, o índice inteiro máximo mais um e "output_dim" a dimensão da incorporação densa.
Início

7. "Flatten:" Aplana a entrada no que se refere ao input, sem alterar a dimensão do lote

Aplana a entrada no que se refere ao input, sem alterar a dimensão do lote. Exemplo:
layers.Flatten ()
Início

8. "GlobalMaxPool1D/2D/3D:"

layers.GlobalMaxPool1D/2D/3D (data_format=None, keepdims=False, ...)
Início

9. "LSTM:" Cria uma camada de memória de longo prazo

layers.LSTM (units, ...)
Camada de memória de longo prazo (LSTM, Long Short-Term Memory). De acordo com o tempo de execução do hardware disponível e das suas restrições, esta camada escolhe implementações para maximizar o desempenho (baseadas em cuDNN ou nativas do backend).
"units" é a dimensionalidade do espaço de saída.
Início

10. "MaxPooling1D/2D/3D:" Reduz a resolução da entrada (1,2,3-Dim)

layers.MaxPooling1D/2D/3D (pool_size, ...)
Reduz a resolução da entrada, respectivamente, para entradas a uma, duas ou três dimensões. A redução é dada por "pool_size" que é por defeito de "2" em cada dimensão. Note-se que os valores para cada dimensão podem ser diferentes. Exemplo a duas dimensões:
layers.MaxPooling2D ()
Nota: O inverso de uma camada layers.MaxPooling?D é uma camada layers.UpSampling?D.
Início

11. "Reshape:" Redimensiona uma camada tendo em conta que o número total de elementos se deve manter

layers.Reshape (target_shape, ...)
Redimensiona uma camada tendo em conta que o número total de elementos se deve manter. Em que "target_shape" é a nova dimensão. Exemplo:
x = keras.Input(shape=(12,))
y = keras.layers.Reshape((3, 4))(x)
y.shape
z = keras.layers.Reshape((-1, 2, 2))(x)
z.shape
Início

12. "Rescaling:" Faz o reescalamento dos valores de entrada (pré-processamento)

layers.Rescaling (scale, ...)
Faz o reescalamento dos valores de entrada. Aplica-se no pré-processamento. Exemplo em que se converte o intervalo [0, 255] em [0, 1]:
layers.Rescaling(1./255)
Início

13. "UpSampling1D/2D/3D:" Aumenta o tamanho de uma camada (1,2,3-Dim)

layers.UpSampling1D/2D/3D (size, ...)
Aumenta o tamanho (inverso de MaxPooling?D). Por defeito, "size" é "2" para cada dimensão. Exemplo:
input_shape = (2, 2, 1, 3)
x = np.arange(np.prod(input_shape)).reshape(input_shape)
print(x)
y = keras.layers.UpSampling2D(size=(1, 2))(x)
print(y)
Início

14. Links úteis

Início