26template<
typename AFloat>
51 if (input_gradient.GetNoElements() > 0) Multiply(input_gradient, df, weights_input);
54 if (state_gradients_backward.GetNoElements() > 0) Multiply(state_gradients_backward, df, weights_state);
61 if (input_weight_gradients.GetNoElements() > 0) {
62 TransposeMultiply(input_weight_gradients, df, input, 1. , 1.);
64 if (state_weight_gradients.GetNoElements() > 0) {
65 TransposeMultiply(state_weight_gradients, df, state, 1. , 1. );
69 if (bias_gradients.GetNoElements() > 0) {
70 SumColumns(bias_gradients, df, 1., 1.);
80 return input_gradient;
static Matrix_t & RecurrentLayerBackward(Matrix_t &state_gradients_backward, Matrix_t &input_weight_gradients, Matrix_t &state_weight_gradients, Matrix_t &bias_gradients, Matrix_t &df, const Matrix_t &state, const Matrix_t &weights_input, const Matrix_t &weights_state, const Matrix_t &input, Matrix_t &input_gradient)
Backward pass for Recurrent Networks.
create variable transformations