Example #1
0
 public override void CoreClone(ref VariableBase _clone)
 {
     (_clone as AffineVariable).OptimizerType = OptimizerType;
     (_clone as AffineVariable).Rho           = Rho;
     (_clone as AffineVariable).Weight        = Weight.Clone() as Components.RNdMatrix;
     if (OptimizerWeightBuffer != null)
     {
         (_clone as AffineVariable).OptimizerWeightBuffer = new List <RNdMatrix>(OptimizerWeightBuffer);
     }
 }
Example #2
0
 public override void CoreClone(ref VariableBase _clone)
 {
     (_clone as ConvolutionVariable).OutScale      = OutScale;
     (_clone as ConvolutionVariable).KernelSize    = KernelSize;
     (_clone as ConvolutionVariable).KernelExpand  = KernelExpand;
     (_clone as ConvolutionVariable).OptimizerType = OptimizerType;
     (_clone as ConvolutionVariable).Rho           = Rho;
     (_clone as ConvolutionVariable).WeightBias    = WeightBias.Clone() as Components.RNdMatrix;
     (_clone as ConvolutionVariable).WeightKernel  = WeightKernel.Clone() as Components.RNdMatrix;
     if (OptimizerBiasBuffer != null)
     {
         (_clone as ConvolutionVariable).OptimizerBiasBuffer = new List <RNdMatrix>(OptimizerBiasBuffer);
     }
     if (OptimizerKernelBuffer != null)
     {
         (_clone as ConvolutionVariable).OptimizerKernelBuffer = new List <RNdMatrix>(OptimizerKernelBuffer);
     }
 }
Example #3
0
        public static void TestStart_ImageConvolusion()
        {
            Components.Imaging.Core.Instance.Initialize(State.CaptureMode.Device_Camera);

            (new System.Threading.Tasks.Task(() =>
            {
                Random rand = new Random();
                RNdMatrix inmat = new RNdMatrix(1, 3, 340, 240);
                RNdMatrix outmat = new RNdMatrix(1, 3, 340, 240);

                var unit = new GPGPU.Layer.Unit.Convolution.Convolution()
                {
                    Activation = true,
                    KernelSize = 5,
                    OutputChannels = 3,
                    Rho = 0.001,
                };
                unit.Initialize(inmat.Clone());
                unit.Confirm();

                int counter = 0;
                double time = 0;
                while (true)
                {
                    time = 0;
                    var input = Imaging.Core.Instance.GetFrame(inmat.Shape);
                    unit.Input = input.Clone();
                    time += unit.Action(State.ActionMode.Forward);

                    var sigma = unit.Output - input;
                    unit.Sigma = sigma;
                    //time += unit.Action(ActionMode.Back);

                    unit.Output.Show("output", 0);
                    sigma.Show("sigma", 0);
                    Terminal.WriteLine(State.EventState.State, "Step:{0}, TimeSpan[ms]:{1}, FPS:{2}", counter++, (int)time, (int)(1000.0 / time));
                }
            })).Start();
        }