Перейти к содержанию

Рекуррентные слои

RNN

keras.engine.base_layer.wrapped_fn()

Базовый класс для рекуррентных слоев.

Аргументы

  • cell: ячейка RNN. Ячейка RNN — это класс, который имеет:
  • метод сall(input_at_t, states_at_t) возвращает (output_at_t,states_at_t_plus_1). Метод call также может принимать необязательные аргументы constants, см. Раздел «Замечание о передаче внешних констант» ниже.
  • атрибут state_size. Это может быть одно целое число (одного состояния), в этом случае это размер повторяющегося состояния (который должен быть равен размеру вывода ячейки). Это также может быть список/кортеж целых чисел (один размер на состояние).
  • атрибут output_size. Это может быть одно целое число или TensorShape, которые представляют собой форму вывода. По причине обратной совместимости, если этот атрибут недоступен для ячейки, значение будет выведено первым элементом state_size.

Также ячейка может быть списком экземпляров RNN ячеек, в которых ячейки складываются одна за другой в RNN, реализуя эффективное складирование RNN.

  • return_sequences: Логический. Возвращать ли последний выход в выходной последовательности, или всю последовательность.
  • return_state: Логический. Вывести ли последнее состояние в дополнение к output.
  • go_backwards: Логический (по умолчанию False). Если True, то обработает входную последовательность в обратном направлении и вернет обратную последовательность.
  • stateful: Логический (по умолчанию False). Если True, то в качестве начального состояния для выборки с индексом i в следующем пакете будет использоваться последнее состояние для каждой выборки с индексом i.
  • unroll: Логический (по умолчанию False). Если True, то сеть будет разворачиваться, в противном случае будет использоваться символический цикл. Развертывание может ускорить RNN, хотя оно, как правило, требует больше памяти. Развертывание подходит только для коротких последовательностей.
  • input_dim: размерность входа (целое число). Этот аргумент (или, наоборот, ключевое слово input_shape) необходим при использовании этого слоя в качестве первого слоя в модели.
  • input_length: Длина входных последовательностей, которая должна быть указана, когда она постоянна. Этот аргумент необходим, если вы собираетесь подключить Flatten, а затем плотные слои вверх по течению (без него невозможно вычислить форму плотных выходов). Обратите внимание, что если повторяющийся слой не является первым слоем в вашей модели, вам нужно будет указать входную длину на уровне первого слоя (например, с помощью аргумента input_shape).

Форма ввода (input shape)

3D тензор с формой (batch_size, timesteps, input_dim).

Форма вывода (output shape)

  • если return_state: список тензоров. Первый тензор — output. Остальные тензоры — это последние состояния, каждое из которых имеет форму (batch_size, units). Например, число тензоров состояний равно 1 (для RNN и GRU) или 2 (для LSTM).
  • если return_sequences: 3D тензор с формой (batch_size, timesteps, units).
  • иначе, 2D тензор с формой (batch_size, units)

Masking

Этот слой поддерживает маскировку входных данных с переменным количеством временных интервалов. Для введения масок в данные используйте слой Embedding с параметром mask_zero, установленным в True.

Обратите внимание на использование statefulness в RNNs

Вы можете установить RNN слои как «stateful», что означает, что состояния, вычисленные для сэмплов в одном пакете, будут повторно использованы в качестве начальных состояний для сэмплов в следующем пакете. Это предполагает сопоставление состояний один к одному между выборками в различных последовательных пакетах.

Для включения statefulness: — укажите stateful=True в конструкторе слоя. – укажите фиксированный размер батча для вашей модели, и, если модель последовательная: batch_input_shape=(…) первому слою вашей модели, а для функциональной модели с 1 или более входными слоями: batch_shape=(…) всем первым слоям вашей модели. Это ожидаемая форма ваших входных данных, включая размер пакета. Это должен быть кортеж целых чисел, например (32, 10, 100). — Укажите shuffle=False при вызове функции fit().

Чтобы сбросить состояния вашей модели, вызовите .reset_states() либо на определенном слое, либо на всей модели.

Примечание по заданию начального состояния RNN

Начальное состояние слоев RNN можно задать символически, вызвав их с помощью аргумента ключевого слова initial_state. Значением initial_state должен быть тензор или список тензоров, представляющих начальное состояние слоя RNN.

Начальное состояние слоев RNN можно задать численно, вызвав reset_states с аргументом ключевого слова states. Значение states должно представлять собой нумерованный массив или список numpy массивов, представляющих начальное состояние слоя RNN.

Примечание по передаче внешних констант в RNN

Передать «внешние» константы в ячейку можно с помощью аргумента constants ключевого слова RNN.__call__ (а также RNN.call). Это требует, чтобы метод cell.call принимал те же самые константы аргумента ключевого слова. Такие константы могут быть использованы для того, чтобы обусловить преобразование ячейки на дополнительных статических входах (не изменяющихся во времени), так же как и механизм внимания.

Примеры

# Во-первых, давайте определим ячейку RNN как подкласс уровня.

class MinimalRNNCell(keras.layers.Layer):

    def __init__(self, units, **kwargs):

        self.units = units

        self.state_size = units

        super(MinimalRNNCell, self).__init__(**kwargs)

    def build(self, input_shape):

        self.kernel = self.add_weight(shape=(input_shape[-1], self.units),

                                      initializer=’uniform’,

                                      name=’kernel’)

        self.recurrent_kernel = self.add_weight(

            shape=(self.units, self.units),

            initializer=’uniform’,

            name=’recurrent_kernel’)

        self.built = True

    def call(self, inputs, states):

        prev_output = states[0]

        h = K.dot(inputs, self.kernel)

        output = h + K.dot(prev_output, self.recurrent_kernel)

        return output, [output]

# Давайте использовать эту ячейку в слое RNN:

cell = MinimalRNNCell(32)

x = keras.Input((None, 5))

layer = RNN(cell)

y = layer(x)

# Вот как использовать ячейку для построения RNN с накоплением:

cells = [MinimalRNNCell(32), MinimalRNNCell(64)]

x = keras.Input((None, 5))

layer = RNN(cells)

y = layer(x)

SimpleRNN

keras.layers.SimpleRNN(units, activation=’tanh’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False)

Полностью подключенный RNN, где выход должен быть возвращен на вход.

Аргументы

  • units: положительное целое число, размерность выходного пространства.
  • activation: используемая функция активации (см. активации). По умолчанию: гиперболический тангенс (tanh). При значении None активация не применяется (т.е. «linear» активация: a(x) = x).
  • use_bias: Логический, использует ли слой вектор смещения.
  • kernel_initializer: Инициализатор для матрицы весов kernel, используемой для линейного преобразования входов (см. инициализаторы).
  • recurrent_initializer: Инициализатор матрицы весов(повторяющихся) recurrent_kernel, используемой для линейного преобразования повторяющегося состояния (см. инициализаторы).
  • bias_initializer: Инициализатор для вектора смещения (см. инициализаторы).
  • kernel_regularizer: Функция регулялизатора, применяемая к матрице весов kernel (см. регуляризатор).
  • recurrent_regularizer: Функция регулялизатора применяется к матрице повторяющихся весов recurrent_kernel (см. регуляризатор).
  • bias_regularizer: Функция регуляризатора применяется к вектору смещения (см. регуляризатор).
  • activity_regularizer: Функция регулялизатора применяется к выходу слоя (его «активация»). (см. регуляризатор).
  • kernel_constraint: Функция ограничения, применяемая к матрице весов kernel (см. ограничения).
  • recurrent_constraint: Функция ограничения, применяемая к матрице повторяющихся весов recurrent_kernel (см. ограничения).
  • bias_constraint: Функция ограничения применяется к вектору смещения (см. ограничения).
  • dropout: float между 0 и 1. Доля единиц, которую нужно отбросить(выключить) для линейного преобразования входов.
  • recurrent_dropout: float между 0 и 1. Доля единиц, выпадающих при линейном преобразовании повторяющегося состояния.
  • return_sequences: Логический. Возвращать ли последний выход в выходной последовательности, или всю последовательность.
  • return_state: Логический. Возвращать ли последнее состояние в дополнение к выходной последовательности.
  • go_backwards: Логический (по умолчанию False). Если True, обработает входную последовательность в обратном направлении и вернет обратную последовательность.
  • stateful: Логический (по умолчанию False). Если True, то в качестве начального состояния для выборки с индексом i в следующем пакете будет использоваться последнее состояние для каждой выборки с индексом i.
  • unroll: Логический (по умолчанию False). Если True, то сеть будет разворачиваться, в противном случае будет использоваться символический цикл. Развертывание может ускорить RNN, хотя оно, как правило, требует больше памяти. Развертывание подходит только для коротких последовательностей.

[source]

GRU

keras.layers.GRU(units, activation=’tanh’, recurrent_activation=’sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, implementation=2, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False, reset_after=False)

Закрытый рекуррентный блок — Cho и др. 2014.

Существует два варианта. По умолчанию, один основан на 1406.1078v3 и имеет сброс затвора, примененный к скрытому состоянию до умножения матриц. Другой основан на оригинальном 1406.1078v1 и имеет обратный порядок.

Второй вариант совместим с CuDNNGRU (только для GPU) и позволяет делать выводы на CPU. Таким образом, он имеет отдельные смещения для kernel и recurrent_kernel. Используйте ‘reset_after’=True и recurrent_activation=’sigmoid’.

Аргументы

  • units: Положительное целое число, размерность выходного пространства.
  • activation: Используемая функция активации (см. активации). По умолчанию: гиперболический тангенс (tanh). При значении None активация не применяется (т.е. «linear» активация: a(x) = x).
  • recurrent_activation: Функция активации, используемая для повторяющегося шага (см. активации). По умолчанию: жесткая сигмоида (hard_sigmoid). При значении None активация не применяется (т.е. «linear» активация: a(x) = x).
  • use_bias: Логический, использует ли слой вектор смещения.
  • kernel_initializer: Инициализатор для матрицы весов kernel, используемой для линейного преобразования входов (см. инициализаторы).
  • recurrent_initializer: Инициализатор матрицы повторяющихся весов recurrent_kernel, используемой для линейного преобразования повторяющегося состояния (см. инициализаторы).
  • bias_initializer: Инициализатор для вектора смещения (см. инициализаторы).
  • kernel_regularizer: Функция регулялизатора, применяемая к матрице весов kernel (см. регуляризатор).
  • recurrent_regularizer: Функция регулялизатора применяется к матрице регулярных весов recurrent_kernel (см. регуляризатор).
  • bias_regularizer: Функция регуляризатора применяется к вектору смещения (см. регуляризатор).
  • activity_regularizer: Функция регулялизатора применяется к выходу слоя (его «активация»). (см. регуляризатор).
  • kernel_constraint: Функция ограничения, применяемая к матрице весов kernel (см. ограничения).
  • recurrent_constraint: Функция ограничения, применяемая к матрице повторяющихся весов recurrent_kernel (см. ограничения).
  • bias_constraint: Функция ограничения применяется к вектору смещения (см. ограничения).
  • dropout: float между 0 и 1. Доля единиц, которую нужно отбросить(выключить) для линейного преобразования входов.
  • recurrent_dropout: float между 0 и 1. Доля единиц, выпадающих при линейном преобразовании повторяющегося состояния.
  • implementation: Режим реализации: 1 или 2. Режим 1 структурирует свои операции как большее количество меньших точечных продуктов и дополнений, в то время как режим 2 группирует их в меньшее, большее количество операций. Эти режимы будут иметь различные профили производительности на разных аппаратных средствах и для разных приложений. 
  • return_sequences: Логический. Возвращать ли последний вывод в выходной последовательности, или всю последовательность.
  • return_state: Логический. Возвращать ли последнее состояние в дополнение к выходной последовательности.
  • go_backwards: Логический (по умолчанию False). Если True, обработает входную последовательность в обратном направлении и вернет обратную последовательность.
  • stateful: Логический (по умолчанию False). Если True, то в качестве начального состояния для выборки с индексом i в следующем пакете будет использоваться последнее состояние для каждой выборки с индексом i.
  • unroll: Логический (по умолчанию False). Если True, то сеть будет разворачиваться, в противном случае будет использоваться символический цикл. Развертывание может ускорить RNN, хотя оно, как правило, требует больше памяти. Развертывание подходит только для коротких последовательностей.
  • reset_after: Соглашение GRU (применять ли сброс затвора после или до умножения матриц). False = «before» (по умолчанию), True = «after» (совместимо с CuDNN).

Ссылки

  • Изучение фразового представления с использованием RNN Encoder-Decoder для статистического машинного перевода
  • О свойствах нейромашинного перевода: Подходы кодировщика-декодера
  • Эмпирическая оценка закрытых повторяющихся нейронных сетей при моделировании последовательностей
  • Теоретически обоснованное применение отсева в повторяющихся нейронных сетях

[source]

LSTM

keras.layers.LSTM(units, activation=’tanh’, recurrent_activation=’sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, unit_forget_bias=True, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, implementation=2, return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False)

Слой длинной кратковременной памяти — Hochreiter 1997.

Аргументы

  • units: положительное целое число, размерность выходного пространства.
  • activation: Используемая функция активации (см. активации). По умолчанию: гиперболический тангенс (tanh). При значении None активация не применяется (т.е. «linear» активация: a(x) = x).
  • recurrent_activation: Функция активации, используемая для повторяющегося шага (см. активации). По умолчанию: жесткая сигмоида (hard_sigmoid). При значении None активация не применяется (т.е. «linear» активация: a(x) = x).
  • use_bias: Логический, использует ли слой вектор смещения.
  • kernel_initializer: Инициализатор для матрицы весов kernel, используемой для линейного преобразования входов (см. инициализаторы).
  • recurrent_initializer: Инициализатор матрицы повторяющихся весов recurrent_kernel, используемой для линейного преобразования повторяющегося состояния (см. инициализаторы).
  • bias_initializer: Инициализатор для вектора смещения (см. инициализаторы).
  • unit_forget_bias: Логический. Если True, добавит 1 к смещению затвора забывчивости при инициализации. Установка True также приведет к bias_initializer=»zeros». Это рекомендуется в Jozefowicz и др. (2015).
  • kernel_regularizer: Функция регулялизатора применяется к матрице весов kernel (см. регуляризатор).
  • recurrent_regularizer: Функция регулятора применяется к матрице регулярных весов kernel (см. регуляризатор).
  • bias_regularizer: Функция регуляризатора применяется к вектору смещения (см. регуляризатор).
  • activity_regularizer: Функция регулялизатора применяется к выходу слоя (его «активация»). (см. регуляризатор).
  • kernel_constraint: Функция ограничения, применяемая к матрице весов kernel (см. ограничения).
  • recurrent_constraint: Функция ограничения, применяемая к матрице повторяющихся весов recurrent_kernel (см. ограничения).
  • bias_constraint: Функция ограничения применяется к вектору смещения (см. ограничения).
  • dropout: float между 0 и 1. Доля единиц, которую нужно отбросить(выключить) для линейного преобразования входов.
  • recurrent_droupout: float между 0 и 1. Доля единиц, выпадающих при линейном преобразовании повторяющегося состояния.
  • implementation: Режим реализации: 1 или 2. Режим 1 структурирует свои операции как большее количество меньших точечных продуктов и дополнений, в то время как режим 2 группирует их в меньшее, большее количество операций. Эти режимы будут иметь различные профили производительности на разных аппаратных средствах и для разных приложений.
  • return_sequences: Логический. Возвращать ли последний вывод в выходной последовательности, или всю последовательность.
  • return_state: Логический. Возвращать ли последнее состояние в дополнение к выходной последовательности. Возвращаемые элементы списка состояний скрытые и состояние ячейки соответственно.
  • go_backwards: Логический (по умолчанию False). Если True, обработает входную последовательность в обратном направлении и вернет обратную последовательность.
  • stateful: Логический (по умолчанию False). Если True, то в качестве начального состояния для выборки с индексом i в следующем пакете будет использоваться последнее состояние для каждой выборки с индексом i.
  • unroll: Логический (по умолчанию False). Если True, то сеть будет разворачиваться, в противном случае будет использоваться символический цикл. Развертывание может ускорить RNN, хотя оно, как правило, требует больше памяти. Развертывание подходит только для коротких последовательностей.

Ссылки

  • Долгосрочная краткосрочная память
  • Научиться забывать: Непрерывное прогнозирование с помощью LSTM
  • Контролируемая маркировка последовательности с помощью рекуррентных нейронных сетей
  • Теоретически обоснованное применение отсева в повторяющихся нейронных сетях

[source]

ConvLSTM2D

keras.layers.ConvLSTM2D(filters, kernel_size, strides=(1, 1), padding=’valid’, data_format=None, dilation_rate=(1, 1), activation=’tanh’, recurrent_activation=’hard_sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, unit_forget_bias=True, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, return_sequences=False, go_backwards=False, stateful=False, dropout=0.0, recurrent_dropout=0.0) 

Свёрточный LSTM.

Он похож на LSTM слой, но входные и периодические преобразования являются одновременно и сверточными.

Аргументы

  • filters: Целое, размерность выходного пространства (т.е. количество выходов фильтров в свертке).
  • kernel_size: Целое число или кортеж/список из n целых чисел, задающих размеры окна свертки.
  • strides: Целое число или кортеж/список из n целых чисел, задающий шаги свертки. Указание любого значения шага != 1 несовместимо с указанием любого dilation_rate значения != 1.
  • padding: Одно из «valid» или «same» (без учета регистра).
  • data_format: Строка, одна из «channels_last» (по умолчанию) или «channels_first». Порядок следования размеров на входах. «channels_last» соответствует входам с формой (batch, time, …, channels), а «channels_first» соответствует входам с формой (batch, time, channels, …). По умолчанию значением параметра image_data_format, найденным в конфигурационном файле Keras, является ~/.keras/keras.json. Если вы никогда не устанавливали его, то это будет «channels_last».
  • dilation_rate: Целое число или кортеж/список из n целых чисел, задающих скорость расширения для расширенной свертки. На данный момент, указание любого значения dilation_rate != 1 несовместимо с указанием любого значения strides != 1.
  • activation: Функция активации для использования (см. активации).
  • recurrent_activation: Функция активации для использования на повторяющемся шаге (см. активации).
  • use_bias: Логический, использует ли слой вектор смещения.
  • kernel_initializer: Инициализатор для матрицы весов kernel, используемой для линейного преобразования входов. (см. инициализаторы).
  • recurrent_initializer: Инициализатор матрицы повторяющихся весов recurrent_kernel, используемой для линейного преобразования повторяющегося состояния. (см. инициализаторы).
  • bias_initializer: Инициализатор для вектора смещения (см. инициализаторы).
  • unit_forget_bias: Логический. Если True, добавит 1 к смещению затвора забывчивости при инициализации. Использовать в комбинации с bias_initializer=»zeros». Это рекомендуется в Jozefowicz и др. (2015).
  • kernel_regularizer: Функция регулялизатора применяется к матрице весов kernel (см. регуляризатор).
  • recurrent_regularizer: Функция регулятора применяется к матрице регулярных весов recurrent_kernel (см. регуляризатор).
  • bias_regularizer: Функция регуляризатора применяется к вектору смещения (см. регуляризатор).
  • activity_regularizer: Функция регулялизатора применяется к выходу слоя (его «активации»). (см. регуляризатор).
  • kernel_constraint: Функция ограничения, применяемая к матрице весов kernel (см. ограничения).
  • recurrent_constraint: Функция ограничения, применяемая к матрице повторяющихся весов recurrent_kernel (см. ограничения).
  • bias_constraint: Функция ограничения применяется к вектору смещения (см. ограничения).
  • return_sequences: Логический. Возвращать ли последний вывод в выходной последовательности, или всю последовательность.
  • go_backwards: Логический (по умолчанию False). Если значение True, обработает входную последовательность в обратном направлении.
  • stateful: Логический (по умолчанию False). Если True, то в качестве начального состояния для выборки индекса i в следующем пакете будет использоваться последнее состояние для каждой выборки в индексе i.
  • dropout: float между 0 и 1. Доля единиц, которую нужно отбросить(выключить) для линейного преобразования входов.
  • recurrent_droupout: float между 0 и 1. Доля единиц, выпадающих при линейном преобразовании повторяющегося состояния.

Форма ввода

  • Если data_format=’channels_first’ 5D тензор с формой: (samples, time, channels, rows, cols)
  • Если data_format=’channels_last’ 5D тензор с формой: (samples, time, rows, cols, channels)

Форма вывода

  • Если return_sequences
  • Если data_format=’channels_first’ 5D тензор с формой: (samples, time, filters, output_row, output_col)
  • Если data_format=’channels_last’ 5D тензор с формой: (samples, time, output_row, output_col, filters)
  • Иначе
  • Если data_format=’channels_first’ 4D тензор с формой: (samples, filters, output_row, output_col)
  • Если data_format=’channels_last’ 4D тензор с формой: (samples, output_row, output_col, filters)

где o_row и o_col зависят от формы фильтра и пэддинга.

Исключения

  • ValueError: в случае недействительных аргументов конструктора.

Ссылки

  • Сверточная сеть LSTM: Текущая реализация не включает в себя цикл обратной связи на выходе из клеток

[source]

ConvLSTM2DCell

keras.layers.ConvLSTM2DCell(filters, kernel_size, strides=(1, 1), padding=’valid’, data_format=None, dilation_rate=(1, 1), activation=’tanh’, recurrent_activation=’hard_sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, unit_forget_bias=True, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0)

Класс ячеек для слоя ConvLSTM2D.

Аргументы

  • filters: Целое, размерность выходного пространства (т.е. количество выходных фильтров в свертке).
  • kernel_size: Целое число или кортеж/список из n целых чисел, задающих размеры окна свертки.
  • strides: Целое число или кортеж/список из n целых чисел, задающий шаги свертки. Указание любого значения шага != 1 несовместимо с указанием любого значения dilation_rate != 1.
  • padding: Одно из «valid» или «same» (без учета регистра).
  • data_format: Строка, одна из «channels_last» (по умолчанию) или «channels_first». Порядок следования размеров на входах. «channels_last» соответствует входам с формой (batch, time, …, channels), а «channels_first» соответствует входам с формой (batch, time, channels, …). По умолчанию значением параметра image_data_format, найденным в конфигурационном файле Keras, является ~/.keras/keras.json. Если вы никогда не устанавливали его, то это будет «channels_last».
  • dilation_rate: Целое число или кортеж/список из n целых чисел, задающих скорость расширения для расширенной свертки. На данный момент, указание любого значения dilation_rate != 1 несовместимо с указанием любого значения strides != 1.
  • activation: Функция активации для использования (см. активации).
  • recurrent_activation: Функция активации для использования на повторяющемся шаге (см. активации).
  • use_bias: Логический, использует ли слой вектор смещения.
  • kernel_initializer: Инициализатор для матрицы весов kernel, используемой для линейного преобразования входов. (см. инициализаторы).
  • recurrent_initializer: Инициализатор матрицы повторяющихся весов кернела, используемой для линейного преобразования повторяющегося состояния. (см. инициализаторы).
  • bias_initializer: Инициализатор для вектора смещения (см. инициализаторы).
  • unit_forget_bias: Логический. Если True, добавит 1 к смещению затвора забывчивости при инициализации. Использовать в комбинации с bias_initializer=»zeros». Это рекомендуется в Jozefowicz и др. (2015).
  • kernel_regularizer: Функция регулялизатора применяется к матрице весов kernel (см. регуляризатор).
  • recurrent_regularizer: Функция регулятора применяется к матрице регулярных весов recurrent_kernel (см. регуляризатор).
  • bias_regularizer: Функция регуляризатора применяется к вектору смещения (см. регуляризатор)..
  • kernel_constraint: Функция ограничения, применяемая к матрице весов kernel (см. ограничения).
  • recurrent_constraint: Функция ограничения, применяемая к матрице повторяющихся весов recurrent_kernel (см. ограничения).
  • bias_constaint: Функция ограничения применяется к вектору смещения (см. ограничения).
  • dropout: float между 0 и 1. Доля единиц, которую нужно отбросить(выключить) для линейного преобразования входов.
  • recurrent_droupout: float между 0 и 1. Доля единиц, выпадающих при линейном преобразовании повторяющегося состояния

[source]

SimpleRNNCell

keras.layers.SimpleRNNCell(units, activation=’tanh’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0)

Класс ячеек для SimpleRNN.

Аргументы

  • units: положительное целое число, размерность выходного пространства.
  • activation: используемая функция активации (см. активации). По умолчанию: гиперболический тангенс (tanh). При значении None активация не применяется (т.е. «linear» активация: a(x) = x).
  • use_bias: Логический, использует ли слой вектор смещения.
  • kernel_initializer: Инициализатор для матрицы весов kernel, используемой для линейного преобразования входов (см. инициализаторы).
  • recurrent_initializer: Инициализатор матрицы повторяющихся весов recurrent_kernel, используемой для линейного преобразования повторяющегося состояния (см. инициализаторы).
  • bias_initializer: Инициализатор для вектора смещения (см. инициализаторы).
  • kernel_regularizer: Функция регулялизатора, применяемая к матрице весов kernel (см. регуляризатор).
  • recurrent_regularizer: Функция регулялизатора применяется к матрице регулярных весов recurrent_kernel (см. регуляризатор).
  • bias_regularizer: Функция регуляризатора применяется к вектору смещения (см. регуляризатор).
  • kernel_constraint: Функция ограничения, применяемая к матрице весов kernel (см. ограничения).
  • recurrent_constraint: Функция ограничения, применяемая к матрице повторяющихся весов recurrent_kernel (см. ограничения).
  • bias_constraint: Функция ограничения применяется к вектору смещения (см. ограничения).
  • droupout: float между 0 и 1. Доля единиц, которую нужно отбросить(выключить) для линейного преобразования входов.
  • recurrent_droupout: float между 0 и 1. Доля единиц, выпадающих при линейном преобразовании повторяющегося состояния.

[source]

GRUCell

keras.layers.GRUCell(units, activation=’tanh’, recurrent_activation=’sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, implementation=2, reset_after=False

Класс ячеек для слоя GRU.

Аргументы

  • units: положительное целое число, размерность выходного пространства.
  • activation: используемая функция активации (см. активации). По умолчанию: гиперболический тангенс (tanh). При значении None активация не применяется (т.е. «linear» активация: a(x) = x).
  • recurrent_activation: Функция активации, используемая для повторяющегося шага (см. активации). По умолчанию: жесткий сигмоид (hard_sigmoid). При передаче None активация не применяется (т.е. «linear» активация: a(x) = x).
  • use_bias: Логический, использует ли слой вектор смещения.
  • kernel_initializer: Инициализатор для матрицы весов kernel, используемой для линейного преобразования входов (см. инициализаторы).
  • recurrent_initializer: Инициализатор матрицы повторяющихся весов recurrent_kernel, используемой для линейного преобразования повторяющегося состояния (см. инициализаторы).
  • bias_initializer: Инициализатор для вектора смещения (см. инициализаторы).
  • kernel_regularizer: Функция регулялизатора, применяемая к матрице весов kernel (см. регуляризатор).
  • recurrent_regularizer: Функция регулялизатора применяется к матрице регулярных весов recurrent_kernel (см. регуляризатор).
  • bias_regularizer: Функция регуляризатора применяется к вектору смещения (см. регуляризатор).
  • kernel_constraint: Функция ограничения, применяемая к матрице весов kernel (см. ограничения).
  • recurrent_constraint: Функция ограничения, применяемая к матрице повторяющихся весов recurrent_kernel (см. ограничения).
  • bias_constraint: Функция ограничения применяется к вектору смещения (см. ограничения).
  • dropout: float между 0 и 1. Доля единиц, которую нужно отбросить(выключить) для линейного преобразования входов.
  • recurrent_dropout: float между 0 и 1. Доля единиц, выпадающих при линейном преобразовании повторяющегося состояния.
  • implementation: Режим реализации: 1 или 2. Режим 1 структурирует свои операции как большее количество меньших точечных продуктов и дополнений, в то время как режим 2 группирует их в меньшее, большее количество операций. Эти режимы будут иметь различные профили производительности на разных аппаратных средствах и для разных приложений.
  • reset_after: Соглашение GRU (применять ли сброс затвора после или до умножения матриц). False = «до» (по умолчанию), True = «после» (совместимо с CuDNN).

[source]

LSTMCell

keras.layers.LSTMCell(units, activation=’tanh’, recurrent_activation=’sigmoid’, use_bias=True, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, unit_forget_bias=True, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0, implementation=2) 

Класс ячеек для слоя LSTM.

Аргументы

  • units: положительное целое число, размерность выходного пространства.
  • activation: используемая функция активации (см. активации). По умолчанию: гиперболический тангенс (tanh). При прохождении None активация не применяется (т.е. «linear» активация: a(x) = x).
  • recurrent_activation: Функция активации, используемая для повторяющегося шага (см. активации). По умолчанию: жесткий сигмоид (hard_sigmoid). При передаче None активация не применяется (т.е. «linear» активация: a(x) = x).
  • use_bias: Логический, использует ли слой вектор смещения.
  • kernel_initializer: Инициализатор для матрицы весов kernel, используемой для линейного преобразования входов (см. инициализаторы).
  • recurrent_initializer: Инициализатор матрицы повторяющихся весов recurrent_kernel, используемой для линейного преобразования повторяющегося состояния (см. инициализаторы).
  • bias_initializer: Инициализатор для вектора смещения (см. инициализаторы).
  • unit_forget_bias: Логический. Если True, добавит 1 к смещению затвора забывчивости при инициализации. Установка в True также приведет к bias_initializer=»zeros». Это рекомендуется в Jozefowicz и др. (2015).
  • kernel_regularizer: Функция регулялизатора применяется к матрице весов kernel (см. регуляризатор).
  • recurrent_regularizer: Функция регулятора применяется к матрице регулярных весов recurrent_kernel (см. регуляризатор).
  • bias_regularizer: Функция регуляризатора применяется к вектору смещения (см. регуляризатор).
  • kernel_constraint: Функция ограничения, применяемая к матрице весов kernel (см. ограничения).
  • recurrent_constraint: Функция ограничения, применяемая к матрице повторяющихся весов recurrent_kernel (см. ограничения).
  • bias_constraint: Функция ограничения применяется к вектору смещения (см. ограничения).
  • dropout: float между 0 и 1. Доля единиц, которую нужно отбросить(выключить) для линейного преобразования входов.
  • recurrent_dropout: float между 0 и 1. Доля единиц, выпадающих при линейном преобразовании повторяющегося состояния.
  • implementation: Режим реализации: 1 или 2. Режим 1 структурирует свои операции как большее количество меньших точечных продуктов и дополнений, в то время как режим 2 группирует их в меньшее, большее количество операций. Эти режимы будут иметь различные профили производительности на разных аппаратных средствах и для разных приложений.

[source]

CuDNNGRU

keras.layers.CuDNNGRU(units, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, return_sequences=False, return_state=False, stateful=False

Быстрое внедрение GRU при поддержке CuDNN.

Можно запускать только на GPU, с бэкэндом TensorFlow.

Аргументы

  • units: положительное целое число, размерность выходного пространства.
  • kernel_initializer: Инициализатор матрицы весов kernel, используемый для линейного преобразования входов. (см. инициализаторы).
  • recurrent_initializer: Инициализатор для матрицы повторяющихся весов recurrent_kernel, используемой для линейного преобразования повторяющегося состояния. (см. инициализаторы).
  • bias_initializer: Инициализатор для вектора смещения (см. инициализаторы).
  • kernel_regularizer: Функция регулялизатора, применяемая к матрице весов kernel (см. регуляризатор).
  • recurrent_regularizer: Функция регулялизатора применяется к матрице регулярных весов recurrent_kernel (см. регуляризатор).
  • bias_regularizer: Функция регуляризатора применяется к вектору смещения (см. регуляризатор).
  • activity_regularizer: Функция регулялизатора применяется к выходу слоя (его «активация»). (см. регуляризатор).
  • kernel_constraint: Функция ограничения, применяемая к матрице весов kernel (см. ограничения).
  • recurrent_constraint: Функция ограничения, применяемая к матрице повторяющихся весов recurrent_kernel (см. ограничения).
  • bias_constraint: Функция ограничения применяется к вектору смещения (см. ограничения).
  • return_sequences: Логический. Возвращать ли последний вывод в выходной последовательности, или всю последовательность.
  • return_state: Логический. Возвращать ли последнее состояние в дополнение к выходной последовательности.
  • stateful: Логический (по умолчанию False). Если True, то последнее состояние для каждой выборки в индексе i в пакете будет использоваться в качестве начального состояния для выборки в индексе i в следующем пакете.

[source]

CuDNNLSTM

keras.layers.CuDNNLSTM(units, kernel_initializer=’glorot_uniform’, recurrent_initializer=’orthogonal’, bias_initializer=’zeros’, unit_forget_bias=True, kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, return_sequences=False, return_state=False, stateful=False

Быстрое внедрение LSTM с CuDNN.

Можно запускать только на GPU, с бэкэндом TensorFlow.

Аргументы

  • units: положительное целое число, размерность выходного пространства.
  • kernel_initializer: Инициализатор матрицы весов kernel, используемый для линейного преобразования входов. (см. инициализаторы).
  • recurrent_initializer: Инициализатор для матрицы повторяющихся весов recurrent_kernel, используемой для линейного преобразования повторяющегося состояния. (см. инициализаторы).
  • bias_initializer: Инициализатор для вектора смещения (см. инициализаторы).
  • unit_forget_bias: Логический. Если True, добавьте 1 к смещению затвора забывчивости при инициализации. Установка в True также приведет к bias_initializer=»zeros». Это рекомендуется в Jozefowicz и др. (2015).
  • kernel_regularizer: Функция регулялизатора применяется к матрице весов kernel (см. регуляризатор).
  • recurrent_regularizer: Функция регулятора применяется к матрице регулярных весов recurrent_kernel (см. регуляризатор).
  • recurrent_regularizer: Функция регуляризатора применяется к вектору смещения (см. регуляризатор).
  • activity_regularizer: Функция регулялизатора применяется к выходу слоя (его «активация»). (см. регуляризатор).
  • kernel_constraint: Функция ограничения, применяемая к матрице весов kernel (см. ограничения).
  • recurrent_constraint: Функция ограничения, применяемая к матрице повторяющихся весов recurrent_kernel (см. ограничения).
  • bias_constraint: Функция ограничения применяется к вектору смещения (см. ограничения).
  • return_sequences: Логический. Возвращать ли последний выход в выходной последовательности, или всю последовательность
  • return_state: Логический. Возвращать ли последнее состояние в дополнение к выходной последовательности.
  • stateful: Логический (по умолчанию False). Если True, то последнее состояние для каждой выборки в индексе i в пакете будет использовано в качестве начального состояния для выборки в индексе i в следующем пакете.