public IActionResult Get(long id) { return(Ok( _dataSetPredictService.GetListNoTracking( x => x.DataSetId == id, orderBys: _dataSetPredictService.CreateOrderBys(new OrderByDescending <DataSetPredict, long>(x => x.Id)), take: 100))); }
public async Task <IActionResult> Train([FromRoute] long id, IFormFile file) { if (file == null) { throw new ArgumentNullException(nameof(file)); } if (id == 0) { throw new ArgumentException(nameof(id)); } var datasetNetwork = _dataSetNetworkService.GetSingleNoTracking(x => x.DataSetId == id && x.DeleteDate == null, includes: _dataSetNetworkService.CreateIncludes(x => x.FileEntry)); var fileEntry = await _fileHandlerService.Upload(file); _dataSetFileEntryService.Create(new DataSetFileEntryModel { FileEntryId = fileEntry.Id, DataSetId = id, DataSetType = DataSetType.Train }); var sourceFilePath = Path.Combine(_fileSystemOptions.Value.Content, fileEntry.Name); var sourceFile = new FileInfo(sourceFilePath); var filename = Path.GetFileNameWithoutExtension(sourceFilePath); var network = new Network { BaseFile = new FileInfo(sourceFilePath), ShuffledFile = new FileInfo(Path.Combine(_fileSystemOptions.Value.Content, $"{ filename }.shuffled.csv")), TrainingFile = new FileInfo(Path.Combine(_fileSystemOptions.Value.Content, $"{ filename }.training.csv")), EvaluateFile = new FileInfo(Path.Combine(_fileSystemOptions.Value.Content, $"{ filename }.evaluate.csv")), NormalizedTrainingFile = new FileInfo(Path.Combine(_fileSystemOptions.Value.Content, $"{filename}.normalized.training.csv")), NormalizedEvaluateFile = new FileInfo(Path.Combine(_fileSystemOptions.Value.Content, $"{filename}.normalized.evaluate.csv")), AnalystFile = new FileInfo(Path.Combine(_fileSystemOptions.Value.Content, $"{filename}.analyst.ega")), EvaluateFileOutput = new FileInfo(Path.Combine(_fileSystemOptions.Value.Content, $"{filename}.evaluate.out.csv")), TrainedNetworkFile = new FileInfo(Path.Combine(_fileSystemOptions.Value.Content, datasetNetwork == null ? $"{Guid.NewGuid().ToString()}.eg" : datasetNetwork.FileEntry.Name)) }; network .Shuffle() .Segregate() .Normalize() .CreateNetwork() .TrainNetwork() .Evaluate(); _dataSetNetworkService.Update(x => x.DataSetId == id && x.DeleteDate == null, action: x => x.DeleteDate = DateTime.UtcNow); datasetNetwork = _dataSetNetworkService.Create(new DataSetNetworkModel { FileEntry = new FileEntryModel { Extension = network.TrainedNetworkFile.Extension, FileName = network.TrainedNetworkFile.Name, Name = network.TrainedNetworkFile.Name, Length = network.TrainedNetworkFile.Length, Description = "The current dataset network state." }, Error = network.Error, DataSetId = id }); var dataSetPredicts = network.PredictResult.Select(x => new DataSetPredictModel { DataSetId = id, Predict = x.Predict, Target = x.Target }).ToList(); _dataSetPredictService.CreateBulk(dataSetPredicts); var dataSetItems = _parser.Parse(sourceFilePath); dataSetItems = _dataSetItemService.Create(dataSetItems.Select(x => { x.InsertDate = DateTime.UtcNow; return(x); }).ToList(), id); return(Ok(new { FileEntry = fileEntry, DataSetItemModels = dataSetItems.Take(100), DataSetNetworks = _dataSetNetworkService.GetListNoTracking( x => x.DataSetId == id, orderBys: _dataSetNetworkService.CreateOrderBys(new OrderByDescending <DataSetNetwork, long>(x => x.Id)), includes: _dataSetNetworkService.CreateIncludes(x => x.FileEntry)).Take(1000), DataSetPredicts = _dataSetPredictService.GetListNoTracking( x => x.DataSetId == id, orderBys: _dataSetPredictService.CreateOrderBys(new OrderByDescending <DataSetPredict, long>(x => x.Id))).Take(1000), })); }