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 = backend.dot(inputs, self.kernel)
output = h + backend.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
)
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/keras/layers/AbstractRNNCell