GRUBlockCell

публичный финальный класс GRUBlockCell

Вычисляет прямое распространение ячейки GRU за 1 временной шаг.

Args x: вход в ячейку ГРУ. h_prev: ввод состояния из предыдущей ячейки GRU. w_ru: Матрица весов для сброса и обновления вентиля. w_c: Весовая матрица для шлюза соединения ячеек. b_ru: Вектор смещения для вентиля сброса и обновления. b_c: Вектор смещения для шлюза соединения ячейки.

Возвращает r: Выход вентиля сброса. u: Выход шлюза обновления. c: Выход шлюза соединения ячеек. h: Текущее состояние ячейки ГРУ.

Обратите внимание на обозначения переменных:

Объединение a и b представлено a_b. Скалярное произведение a и b по элементам представлено ab. Скалярное произведение поэлементно представлено \circ. Матричное умножение представлено *.

Смещения инициализируются с помощью: `b_ru` - константа_инициализатор(1.0) `b_c` - константа_инициализатор(0.0)

Эта операция ядра реализует следующие математические уравнения:

x_h_prev = [x, h_prev]
 
 [r_bar u_bar] = x_h_prev * w_ru + b_ru
 
 r = sigmoid(r_bar)
 u = sigmoid(u_bar)
 
 h_prevr = h_prev \circ r
 
 x_h_prevr = [x h_prevr]
 
 c_bar = x_h_prevr * w_c + b_c
 c = tanh(c_bar)
 
 h = (1-u) \circ c + u \circ h_prev
 

Публичные методы

Выход <Т>
в ()
статический <T расширяет число> GRUBlockCell <T>
create ( Область действия, Операнд <T> x, Операнд <T> hPrev, Операнд <T> wRu, Операнд <T> wC, Операнд <T> bRu, Операнд <T> bC)
Фабричный метод для создания класса, обертывающего новую операцию GRUBlockCell.
Выход <Т>
ч ()
Выход <Т>
р ()
Выход <Т>
ты ()

Унаследованные методы

Публичные методы

публичный вывод <T> c ()

public static GRUBlockCell <T> create ( Область действия, Операнд <T> x, Операнд <T> hPrev, Операнд <T> wRu, Операнд <T> wC, Операнд <T> bRu, Операнд <T> bC)

Фабричный метод для создания класса, обертывающего новую операцию GRUBlockCell.

Параметры
объем текущий объем
Возврат
  • новый экземпляр GRUBlockCell

публичный вывод <T> h ()

публичный вывод <T> r ()

публичный вывод <T> u ()