|
|
Keras — Layers
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
|
|