def learn(self, grad_arr, fix_opt_flag=False):
        '''
        Update this Discriminator by ascending its stochastic gradient.

        Args:
            grad_arr:       `np.ndarray` of gradients.
            fix_opt_flag:   If `False`, no optimization in this model will be done.
        
        Returns:
            `np.ndarray` of delta or gradients.
        '''
        if grad_arr.ndim > 3:
            grad_arr = grad_arr.reshape((
                grad_arr.shape[0],
                grad_arr.shape[1],
                -1
            ))

        delta_arr, grads_list = self.__lstm_model.back_propagation(self.__pred_arr, grad_arr)

        if fix_opt_flag is False:
            self.__lstm_model.optimize(
                grads_list,
                self.__learning_rate,
                1
            )

        return delta_arr
def learn ( self , grad_arr , fix_opt_flag = False ) : if grad_arr . ndim > 3 : grad_arr = grad_arr . reshape ( ( grad_arr . shape [ 0 ] , grad_arr . shape [ 1 ] , - 1 ) ) delta_arr , grads_list = self . __lstm_model . back_propagation ( self . __pred_arr , grad_arr ) if fix_opt_flag is False : self . __lstm_model . optimize ( grads_list , self . __learning_rate , 1 ) return delta_arr
Update this Discriminator by ascending its stochastic gradient.

        Args:
            grad_arr:       `np.ndarray` of gradients.
            fix_opt_flag:   If `False`, no optimization in this model will be done.
        
        Returns:
            `np.ndarray` of delta or gradients.