示例#1
0
 public virtual void update(Transform transform, ClusteredDensityFileData clusters)
 {
     for (int i = 0; i < this.meansPool.size(); i++)
     {
         int     classIndex = clusters.getClassIndex(i);
         float[] array      = new float[this.getVectorLength()[0]];
         float[] array2     = (float[])this.meansPool.get(i);
         for (int j = 0; j < this.numStreams; j++)
         {
             for (int k = 0; k < this.getVectorLength()[j]; k++)
             {
                 array[k] = 0f;
                 int     num;
                 float[] array4;
                 for (int l = 0; l < this.getVectorLength()[j]; l++)
                 {
                     float[] array3 = array;
                     num          = k;
                     array4       = array3;
                     array4[num] += transform.getAs()[classIndex][j][k][l] * array2[l];
                 }
                 float[] array5 = array;
                 num          = k;
                 array4       = array5;
                 array4[num] += transform.getBs()[classIndex][j][k];
             }
             ByteCodeHelper.arraycopy_primitive_4(array, 0, array2, 0, array.Length);
         }
     }
 }
 public void LoadTransform(String path, int numClass)
 {
     try
     {
         Clusters = new ClusteredDensityFileData(Context.GetLoader(), numClass);
         var transform = new Transform((Sphinx3Loader)Context.GetLoader(), numClass);
         transform.Load(path);
         Context.GetLoader().Update(transform, Clusters);
     }
     catch (Exception exception)
     {
         this.LogError(exception);
     }
 }
示例#3
0
        public void Update(Transform transform, ClusteredDensityFileData clusters)
        {
            for (var index = 0; index < MeansPool.Size; index++)
            {
                var transformClass = clusters.GetClassIndex(index);
                var tmean          = new float[VectorLength[0]];
                var mean           = MeansPool.Get(index);

                for (var l = 0; l < VectorLength[0]; l++)
                {
                    tmean[l] = 0;
                    for (var m = 0; m < VectorLength[0]; m++)
                    {
                        tmean[l] += transform.As[transformClass][0][l][m]
                                    * mean[m];
                    }
                    tmean[l] += transform.Bs[transformClass][0][l];
                }
                Array.Copy(tmean, 0, mean, 0, tmean.Length);
            }
        }
 public Stats CreateStats(int numClasses) 
 {
     Clusters = new ClusteredDensityFileData(Context.GetLoader(), numClasses);
     return new Stats(Context.GetLoader(), Clusters);
 }
示例#5
0
 public virtual void update(Transform transform, ClusteredDensityFileData clusters)
 {
 }
示例#6
0
 public void Update(Transform transform, ClusteredDensityFileData clusters)
 {
     // TODO Not implemented yet
 }