Ejemplo n.º 1
0
        public static async Task <ProjectIteration[]> GetProjectIterations(ICustomVisionTrainingClient trainingClient, string predictionResourceId, Guid[] projects)
        {
            var result = new List <ProjectIteration>();

            foreach (var project in projects)
            {
                var iterations = await trainingClient.GetIterationsAsync(project);

                var projectEntity = await trainingClient.GetProjectAsync(project);

                var domain = await trainingClient.GetDomainAsync(projectEntity.Settings.DomainId);

                var iteration = iterations.Where(i => i.Status == "Completed").OrderByDescending(i => i.TrainedAt.Value).FirstOrDefault();

                if (iteration != null)
                {
                    if (string.IsNullOrEmpty(iteration.PublishName))
                    {
                        await trainingClient.PublishIterationAsync(project, iteration.Id, publishName : iteration.Id.ToString(), predictionId : predictionResourceId);

                        iteration = await trainingClient.GetIterationAsync(project, iteration.Id);
                    }

                    result.Add(new ProjectIteration()
                    {
                        Project = project, Iteration = iteration.Id, ProjectName = projectEntity.Name, PublishedName = iteration.PublishName, IsObjectDetection = domain.Type == "ObjectDetection"
                    });
                }
            }
            return(result.ToArray());
        }
Ejemplo n.º 2
0
        public async void GetIterations()
        {
            var updatedName = "New Iteration Name";

            using (MockContext context = MockContext.Start(this.GetType()))
            {
                HttpMockServer.Initialize(this.GetType(), "GetIterations", RecorderMode);

                using (var project = CreateTrainedImageClassificationProject())
                {
                    ICustomVisionTrainingClient client = BaseTests.GetTrainingClient();

                    var iterations = await client.GetIterationsAsync(project.ProjectId);

                    Assert.Equal(1, iterations.Count);
                    Assert.NotEmpty(iterations[0].Name);
                    Assert.NotEqual(Guid.Empty, iterations[0].DomainId);
                    Assert.NotEqual(Guid.Empty, iterations[0].Id);
                    Assert.Equal(project.ProjectId, iterations[0].ProjectId);
                    Assert.Equal("Completed", iterations[0].Status);
                    Assert.False(iterations[0].Exportable);

                    var iteration = await client.GetIterationAsync(project.ProjectId, iterations[0].Id);

                    Assert.Equal(iteration.Name, iterations[0].Name);
                    Assert.Equal(iteration.Id, iterations[0].Id);
                    Assert.Equal(TrainingType.Regular, iteration.TrainingType);
                    Assert.Equal(0, iteration.ReservedBudgetInHours);
                    Assert.NotEmpty(iteration.PublishName);
                    Assert.Equal(1, iteration.TrainingTimeInMinutes);
                    Assert.Equal(BaseTests.PredictionResourceId, iteration.OriginalPublishResourceId);

                    var updatedIteration = await client.UpdateIterationAsync(project.ProjectId, iteration.Id, new Iteration()
                    {
                        Name = updatedName
                    });

                    Assert.Equal(updatedName, updatedIteration.Name);
                }
            }
        }
Ejemplo n.º 3
0
        public async void GetIterations()
        {
            var updatedName = "New Iteration Name";

            using (MockContext context = MockContext.Start(this.GetType().Name))
            {
                HttpMockServer.Initialize(this.GetType().Name, "GetIterations", RecorderMode);

                var projectId = CreateTrainedImageClassificationProject();

                ICustomVisionTrainingClient client = GetTrainingClient();

                var iterations = await client.GetIterationsAsync(projectId);

                Assert.Equal(1, iterations.Count);
                Assert.NotEmpty(iterations[0].Name);
                Assert.NotEqual(Guid.Empty, iterations[0].DomainId);
                Assert.NotEqual(Guid.Empty, iterations[0].Id);
                Assert.Equal(projectId, iterations[0].ProjectId);
                Assert.True(iterations[0].IsDefault);
                Assert.Equal("Completed", iterations[0].Status);
                Assert.False(iterations[0].Exportable);

                var iteration = await client.GetIterationAsync(projectId, iterations[0].Id);

                Assert.Equal(iteration.Name, iterations[0].Name);
                Assert.Equal(iteration.Id, iterations[0].Id);
                Assert.True(iterations[0].IsDefault);

                var updatedIteration = await client.UpdateIterationAsync(projectId, iteration.Id, new Iteration()
                {
                    Name      = updatedName,
                    IsDefault = !iterations[0].IsDefault,
                });

                Assert.Equal(updatedName, updatedIteration.Name);
                Assert.Equal(!iteration.IsDefault, updatedIteration.IsDefault);

                await client.DeleteProjectAsync(projectId);
            }
        }