/// <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(); }
/// <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(); }
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); }
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; }
public MiniBatch(IDataSource dataSource, IGraphData data, bool isSequential, MiniBatchSequenceType sequenceType, int sequenceIndex) { _sequence = new Sequence(new[] { data }, this, sequenceType, sequenceIndex); _dataSource = dataSource; _isSequential = isSequential; }
public void RegisterContinuation(IMiniBatchSequence sequence, System.Action <IContext> callback) => _continuationTable[sequence] = callback;
public ExecutionEngineContext(IExecutionContext executionContext, IMiniBatchSequence miniBatch) { ExecutionContext = executionContext; BatchSequence = miniBatch; Data = null; }