tf.keras.layers.AbstractRNNCell
| Просмотреть исходный код на GitHub |
Абстрактный объект, представляющий ячейку RNN.
tf.keras.layers.AbstractRNNCell(
trainable=True, name=None, dtype=None, dynamic=False, **kwargs
)
См. руководство по API RNN Keras для получения подробной информации об использовании API RNN.
Это базовый класс для реализации ячеек RNN с настраиваемым поведением.
Каждая RNNCell должна иметь свойства ниже и реализовать call со сигнатурой (output, next_state) = call(input, state).
Примеры:
class MinimalRNNCell(AbstractRNNCell):
def __init__(self, units, **kwargs):
self.units = units
super(MinimalRNNCell, self).__init__(**kwargs)
@property
def state_size(self):
return self.units
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 в самой абстрактной постановке — это всё, что имеет состояние и выполняет некоторую операцию, которая принимает матрицу входных данных. Эта операция приводит к матрице выходных данных с self.output_size столбцами. Если self.state_size является целым числом, эта операция также приводит к новой матрице состояния с self.state_size столбцами. Если self.state_size является (возможно, вложенной кортежем) объектом TensorShape, то он должен возвращать соответствующую структуру тензоров, имеющих форму [batch_size].concatenate(s) для каждого s в self.batch_size.
| Атрибуты | |
|---|---|
output_size | Целое число или TensorShape: размер выходных данных, производимых этой ячейкой. |
state_size | Размер(ы) состояния(ий), используемого(ых) этой ячейкой. Он может быть представлен целым числом, TensorShape или кортежем целых чисел или TensorShapes. |
Методы
get_initial_state
get_initial_state(
inputs=None, batch_size=None, dtype=None
)
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/layers/AbstractRNNCell