1. 29 7月, 2017 1 次提交
    • 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