Пример #1
0
        public void initWeights()
        {
            int b, a;

            for (b = 0; b < LayerSize; b++)
            {
                for (a = 0; a < SparseFeatureSize; a++)
                {
                    SparseWeights[b][a] = RNNHelper.RandInitWeight();
                }
            }


            for (b = 0; b < LayerSize; b++)
            {
                for (a = 0; a < DenseFeatureSize; a++)
                {
                    DenseWeights[b][a] = RNNHelper.RandInitWeight();
                }
            }

            for (b = 0; b < LayerSize; b++)
            {
                for (a = 0; a < LayerSize; a++)
                {
                    BpttWeights[b][a] = RNNHelper.RandInitWeight();
                }
            }
        }
Пример #2
0
        public virtual void InitializeWeights(int sparseFeatureSize, int denseFeatureSize)
        {
            if (denseFeatureSize > 0)
            {
                Logger.WriteLine("Initializing dense feature matrix. layer size = {0}, feature size = {1}", LayerSize, denseFeatureSize);
                DenseFeatureSize = denseFeatureSize;
                DenseWeights     = new Matrix <float>(LayerSize, denseFeatureSize);
                for (var i = 0; i < DenseWeights.Height; i++)
                {
                    for (var j = 0; j < DenseWeights.Width; j++)
                    {
                        DenseWeights[i][j] = RNNHelper.RandInitWeight();
                    }
                }
            }

            if (sparseFeatureSize > 0)
            {
                Logger.WriteLine("Initializing sparse feature matrix. layer size = {0}, feature size = {1}", LayerSize, sparseFeatureSize);
                SparseFeatureSize = sparseFeatureSize;
                SparseWeights     = new Matrix <float>(LayerSize, SparseFeatureSize);
                for (var i = 0; i < SparseWeights.Height; i++)
                {
                    for (var j = 0; j < SparseWeights.Width; j++)
                    {
                        SparseWeights[i][j] = RNNHelper.RandInitWeight();
                    }
                }
            }

            InitializeInternalTrainingParameters();
        }
Пример #3
0
        private void CreateCell(BinaryReader br)
        {
            if (br != null)
            {
                //Load weight from input file
                for (int i = 0; i < LayerSize; i++)
                {
                    cell[i].wPeepholeIn     = br.ReadDouble();
                    cell[i].wPeepholeForget = br.ReadDouble();
                    cell[i].wPeepholeOut    = br.ReadDouble();

                    cell[i].wCellIn     = br.ReadDouble();
                    cell[i].wCellForget = br.ReadDouble();
                    cell[i].wCellState  = br.ReadDouble();
                    cell[i].wCellOut    = br.ReadDouble();
                }
            }
            else
            {
                //Initialize weight by random number
                for (int i = 0; i < LayerSize; i++)
                {
                    //internal weights, also important
                    cell[i].wPeepholeIn     = RNNHelper.RandInitWeight();
                    cell[i].wPeepholeForget = RNNHelper.RandInitWeight();
                    cell[i].wPeepholeOut    = RNNHelper.RandInitWeight();

                    cell[i].wCellIn     = RNNHelper.RandInitWeight();
                    cell[i].wCellForget = RNNHelper.RandInitWeight();
                    cell[i].wCellState  = RNNHelper.RandInitWeight();
                    cell[i].wCellOut    = RNNHelper.RandInitWeight();
                }
            }
        }
Пример #4
0
        public void Init(int LayerSize, int DenseFeatureSize, bool hasDeri = true)
        {
            layerSize        = LayerSize;
            denseFeatureSize = DenseFeatureSize;

            weights = new float[LayerSize][];

            if (hasDeri)
            {
                deri = new float[LayerSize][];
            }
            else
            {
                deri = null;
            }

            for (var i = 0; i < LayerSize; i++)
            {
                weights[i] = new float[DenseFeatureSize];

                if (hasDeri)
                {
                    deri[i] = new float[DenseFeatureSize];
                }
                for (var j = 0; j < DenseFeatureSize; j++)
                {
                    weights[i][j] = RNNHelper.RandInitWeight();
                }
            }
        }
Пример #5
0
        private Vector4 InitializeLSTMWeight()
        {
            Vector4 w;

            //initialise each weight to random value
            w.X = RNNHelper.RandInitWeight();
            w.Y = RNNHelper.RandInitWeight();
            w.Z = RNNHelper.RandInitWeight();
            w.W = RNNHelper.RandInitWeight();

            return(w);
        }
Пример #6
0
        public void InitWeights(int LayerSize, int DenseFeatureSize)
        {
            layerSize        = LayerSize;
            denseFeatureSize = DenseFeatureSize;

            weights = new float[layerSize][];
            for (var i = 0; i < layerSize; i++)
            {
                weights[i] = new float[denseFeatureSize];
                for (var j = 0; j < denseFeatureSize; j++)
                {
                    weights[i][j] = RNNHelper.RandInitWeight();
                }
            }
        }
Пример #7
0
 public virtual void InitializeWeights(int sparseFeatureSize, int denseFeatureSize)
 {
     if (denseFeatureSize > 0)
     {
         DenseFeatureSize = denseFeatureSize;
         DenseWeights     = new Matrix <double>(LayerSize, denseFeatureSize);
         for (int i = 0; i < DenseWeights.Height; i++)
         {
             for (int j = 0; j < DenseWeights.Width; j++)
             {
                 DenseWeights[i][j] = RNNHelper.RandInitWeight();
             }
         }
     }
 }
Пример #8
0
        private void InitializeCellWeights(BinaryReader br)
        {
            CellWeights     = new LSTMCellWeight[LayerSize];
            CellWeightsDeri = new LSTMCellWeightDeri[LayerSize];

            if (br != null)
            {
                //Load weight from input file
                for (var i = 0; i < LayerSize; i++)
                {
                    CellWeights[i]                 = new LSTMCellWeight();
                    CellWeights[i].wPeepholeIn     = br.ReadDouble();
                    CellWeights[i].wPeepholeForget = br.ReadDouble();
                    CellWeights[i].wPeepholeOut    = br.ReadDouble();

                    CellWeights[i].wCellIn     = br.ReadDouble();
                    CellWeights[i].wCellForget = br.ReadDouble();
                    CellWeights[i].wCellState  = br.ReadDouble();
                    CellWeights[i].wCellOut    = br.ReadDouble();

                    CellWeightsDeri[i] = new LSTMCellWeightDeri();
                }
            }
            else
            {
                //Initialize weight by random number
                for (var i = 0; i < LayerSize; i++)
                {
                    CellWeights[i] = new LSTMCellWeight();
                    //internal weights, also important
                    CellWeights[i].wPeepholeIn     = RNNHelper.RandInitWeight();
                    CellWeights[i].wPeepholeForget = RNNHelper.RandInitWeight();
                    CellWeights[i].wPeepholeOut    = RNNHelper.RandInitWeight();

                    CellWeights[i].wCellIn     = RNNHelper.RandInitWeight();
                    CellWeights[i].wCellForget = RNNHelper.RandInitWeight();
                    CellWeights[i].wCellState  = RNNHelper.RandInitWeight();
                    CellWeights[i].wCellOut    = RNNHelper.RandInitWeight();

                    CellWeightsDeri[i] = new LSTMCellWeightDeri();
                }
            }
        }