• Y
    RecurrentOp implementation (#2890) · aee0d3ec
    Yan Chunwei 提交于
    * add rnn op interfaces
    
    * add Run
    
    * rename state -> memory
    
    * change state -> memory
    
    * make compilable
    
    * add .cc
    
    * init test
    
    * add op fake implementation
    
    * add CreateStepNet and CreateScopes implementation.
    
    * add TODO list
    
    * init memory attributes.
    
    * add LinkMemories
    
    * add PlainNet fake implementation
    
    * Use std::shared_ptr<Scope> in the OpRunContext.
    
    * add test
    
    * disable mutable_data
    
    * finist segmentInput function
    
    * enable mutable_data with a trick
    
    * RNNOp test.
    
    * enable LinkMemories with mutable_data
    
    * update SegmentInput function with comments
    
    * finish ConcatOutput function
    
    * reformat inputs and attributes
    
    boot_memories
    
    * Refine unit test.
    
    * Refine unit test.
    
    * modify inlinks.
    
    * add OpDesc to Net
    
    * fix bug and update unit test.
    
    * move step scopes from inputs to outputs
    
    * fix merge conflict, update SegmentInput function
    
    * add RecurrentOpProtoAndCheckerMaker.
    
    * clean the codes
    
    * Abstract GetStepScopes and GetMaxSeqLen function
    
    * refine LinkMemories
    
    * Refine code and add some comments.
    
    * add backward core
    
    * update for develop branch.
    
    * add forward core
    
    * add forward algorithm
    
    * Add RecurrentGradientAlgorithm implenmention.
    
    * use CopyFrom and Slice function in RecurrentOp
    
    * add unit test for LinkMemories.
    
    * fix unit test.
    
    * use the latest tensor.h, solve conflict
    
    * add maker
    
    * move SegmentInput and ConcatOutput to details nameplace
    
    * unit test for RecurrentGradientAlgorithm.
    
    * apply OperatorBase
    
    * apply net operator.
    
    * move memorys to attributes
    
    * add RecurrentGradientOp
    
    * open test unit test in recurrent_network_op_test.
    
    * revert some files.
    
    * add RecurrentArgument and Link struct to simplify member variable.
    
    * rename.
    
    * move recurrent_op from framework to operators
    
    * add RecurrentGradientOp Init
    
    * fix name
    
    * fix Link.interal/external name
    
    * use namespace operators instead of framework
    
    * clean the code
    
    * use the latest add_op and mul_op, don't test backward now
    
    * Remove ScopePtr and OperatorPtr
    
    * add get_net to pybind
    
    * add test_recurrent_op.py
    
    * add random into gen_tensor
    
    * update to develop branch and refine some code.
    
    * add some comments.
    aee0d3ec
recurrent_network_op.cc 16.5 KB