def _cudnn_rnn_backward(op, *grad): if not op.get_attr("is_training"): raise ValueError( "CudnnRNN must set is_training to True to be used in gradients") return gen_cudnn_rnn_ops.cudnn_rnn_backprop( input=op.inputs[0], input_h=op.inputs[1], input_c=op.inputs[2], params=op.inputs[3], output=op.outputs[0], output_h=op.outputs[1], output_c=op.outputs[2], output_backprop=grad[0], output_h_backprop=grad[1], output_c_backprop=grad[2], reserve_space=op.outputs[3], rnn_mode=op.get_attr("rnn_mode"), input_mode=op.get_attr("input_mode"), direction=op.get_attr("direction"))
def _cudnn_rnn_backward(op, *grad): if not op.get_attr("is_training"): raise ValueError("CudnnRNN must set is_training to True to be used in gradients") return gen_cudnn_rnn_ops.cudnn_rnn_backprop( input=op.inputs[0], input_h=op.inputs[1], input_c=op.inputs[2], params=op.inputs[3], output=op.outputs[0], output_h=op.outputs[1], output_c=op.outputs[2], output_backprop=grad[0], output_h_backprop=grad[1], output_c_backprop=grad[2], reserve_space=op.outputs[3], rnn_mode=op.get_attr("rnn_mode"), input_mode=op.get_attr("input_mode"), direction=op.get_attr("direction"), )