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); } }
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); } }
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(); }