Example #1
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="miniBatch">The mini batch sequence</param>
 /// <param name="output">The mini batch output</param>
 public ExecutionResult(IMiniBatchSequence miniBatch, IReadOnlyList <FloatVector> output)
 {
     _miniBatch = miniBatch;
     _output    = output;
     _target    = _miniBatch.Target?.GetMatrix().Data.Row;
     _input     = _miniBatch.Input.Select(input => input.GetMatrix().Data.Row).ToList();
 }
Example #2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="miniBatch">The mini batch sequence</param>
 /// <param name="output">The mini batch output</param>
 /// <param name="index">Output index</param>
 public ExecutionResult(IMiniBatchSequence miniBatch, IReadOnlyList <FloatVector> output, int index)
 {
     Index      = index;
     _miniBatch = miniBatch;
     Output     = output;
     Target     = _miniBatch.Target?.GetMatrix().Data.Row;
     Input      = _miniBatch.Input.Select(input => input.GetMatrix().Data.Row).ToList();
 }
Example #3
0
        protected IContext _Process(IExecutionContext executionContext, IMiniBatchSequence sequence)
        {
            var context = new TrainingEngineContext(executionContext, sequence, _learningContext);

            _input.ExecuteForward(context, 0);
            while (context.HasNext)
            {
                context.ExecuteNext();
            }
            return(context);
        }
Example #4
0
        protected bool _Continue(IMiniBatch batch, IExecutionContext executionContext, Func <IMiniBatchSequence, IContext> lookupContext)
        {
            var ret = false;

            while (executionContext.HasContinuations)
            {
                batch.Reset();
                IMiniBatchSequence curr = null;
                while ((curr = batch.GetNextSequence()) != null)
                {
                    var context = lookupContext(curr);
                    executionContext.Continue(context);
                    while (context.HasNext)
                    {
                        context.ExecuteNext();
                    }
                }
                ret = true;
            }
            return(ret);
        }
 public ExecutionEngineContext(IExecutionContext executionContext, IMiniBatchSequence miniBatch)
 {
     _executionContext = executionContext;
     _miniBatch        = miniBatch;
     _data             = null;
 }
Example #6
0
 public MiniBatch(IDataSource dataSource, IGraphData data, bool isSequential, MiniBatchSequenceType sequenceType, int sequenceIndex)
 {
     _sequence     = new Sequence(new[] { data }, this, sequenceType, sequenceIndex);
     _dataSource   = dataSource;
     _isSequential = isSequential;
 }
Example #7
0
 public void RegisterContinuation(IMiniBatchSequence sequence, System.Action <IContext> callback) => _continuationTable[sequence] = callback;
 public ExecutionEngineContext(IExecutionContext executionContext, IMiniBatchSequence miniBatch)
 {
     ExecutionContext = executionContext;
     BatchSequence    = miniBatch;
     Data             = null;
 }