예제 #1
0
파일: RNN.cs 프로젝트: deTrident/RNNSharp
        public static RNN <T> CreateRNN(NETWORKTYPE networkType)
        {
            RNN <T> rnn = null;

            switch (networkType)
            {
            case NETWORKTYPE.Forward:
                rnn = new ForwardRNN <T>();
                break;

            case NETWORKTYPE.ForwardSeq2Seq:
                rnn = new ForwardRNNSeq2Seq <T>();
                break;

            case NETWORKTYPE.ForwardSeq2SeqLabeling:
                rnn = new ForwardRNNSeq2SeqLabeling <T>();
                break;

            case NETWORKTYPE.BiDirectional:
                rnn = new BiRNN <T>();
                break;

            case NETWORKTYPE.BiDirectionalAverage:
                rnn = new BiRNNAvg <T>();
                break;
            }
            return(rnn);
        }
예제 #2
0
        public override RNN <T> Clone()
        {
            List <SimpleLayer> hiddenLayers = new List <SimpleLayer>();

            foreach (SimpleLayer layer in HiddenLayerList)
            {
                hiddenLayers.Add(layer.CreateLayerSharedWegiths());
            }

            ForwardRNNSeq2SeqLabeling <T> rnn = new ForwardRNNSeq2SeqLabeling <T>();

            rnn.HiddenLayerList    = hiddenLayers;
            rnn.OutputLayer        = OutputLayer.CreateLayerSharedWegiths();
            rnn.CRFTagTransWeights = CRFTagTransWeights;
            rnn.MaxSeqLength       = MaxSeqLength;
            rnn.crfLocker          = crfLocker;

            return(rnn);
        }