Package samer.models

Class MatrixTrainer

  • java.lang.Object
    • samer.models.MatrixTrainer
  • All Implemented Interfaces:
    Model.Trainer


    public class MatrixTrainer
    extends java.lang.Object
    implements Model.Trainer
    Handles batched delta updates to a matrix. The default flush multiplies the accumulated delta by the learing rate and adds it to the matrix.
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      protected double[][] _A 
      protected double[][] _T 
      protected double[] a 
      protected Matrix A 
      protected double[] b 
      protected double count 
      protected int m 
      protected int n 
      protected double rate 
      protected VParameter ratep 
      protected Matrix T 
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      void accumulate()
      collect statistics for parameter update
      void accumulate(double w)
      weighted accumulate
      void dispose() 
      void flush()
      use collected stats to update parameters and reset
      double get() 
      VParameter getRate() 
      void oneshot()
      Must be equivalent to reset(); accumulate(); flush(); but can be optimised for non-batched training
      protected void outerProduct(double w, double[] a, double[] b) 
      void reset()
      reset accumulators without updating parameters
      void set(double r) 
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • _A

        protected double[][] _A
      • _T

        protected double[][] _T
      • a

        protected double[] a
      • b

        protected double[] b
      • count

        protected double count
      • m

        protected int m
      • n

        protected int n
      • rate

        protected double rate
      • ratep

        protected VParameter ratep
    • Constructor Detail

      • MatrixTrainer

        public MatrixTrainer(double[] a,
                             Matrix A,
                             double[] b)
      • MatrixTrainer

        public MatrixTrainer(Vec left,
                             Matrix A,
                             Vec right)
    • Method Detail

      • set

        public void set(double r)
      • get

        public double get()
      • getRate

        public VParameter getRate()
      • outerProduct

        protected void outerProduct(double w,
                                    double[] a,
                                    double[] b)
      • reset

        public void reset()
        Description copied from interface: Model.Trainer
        reset accumulators without updating parameters
        Specified by:
        reset in interface Model.Trainer
      • oneshot

        public void oneshot()
        Description copied from interface: Model.Trainer
        Must be equivalent to reset(); accumulate(); flush(); but can be optimised for non-batched training
        Specified by:
        oneshot in interface Model.Trainer
      • accumulate

        public void accumulate()
        Description copied from interface: Model.Trainer
        collect statistics for parameter update
        Specified by:
        accumulate in interface Model.Trainer
      • flush

        public void flush()
        Description copied from interface: Model.Trainer
        use collected stats to update parameters and reset
        Specified by:
        flush in interface Model.Trainer