Class: Ml::ExperimentTracking::CandidateRepository
- Inherits:
-
Object
- Object
- Ml::ExperimentTracking::CandidateRepository
- Defined in:
- app/services/ml/experiment_tracking/candidate_repository.rb
Instance Attribute Summary collapse
-
#candidate ⇒ Object
Returns the value of attribute candidate.
-
#experiment ⇒ Object
Returns the value of attribute experiment.
-
#project ⇒ Object
Returns the value of attribute project.
-
#user ⇒ Object
Returns the value of attribute user.
Instance Method Summary collapse
- #add_metric!(candidate, name, value, tracked_at, step) ⇒ Object
- #add_metrics(candidate, metric_definitions) ⇒ Object
- #add_param!(candidate, name, value) ⇒ Object
- #add_params(candidate, param_definitions) ⇒ Object
- #add_tag!(candidate, name, value) ⇒ Object
- #add_tags(candidate, tag_definitions) ⇒ Object
- #by_eid(eid) ⇒ Object
- #create!(experiment, start_time, tags = nil, name = nil) ⇒ Object
-
#initialize(project, user = nil) ⇒ CandidateRepository
constructor
A new instance of CandidateRepository.
- #update(candidate, status, end_time) ⇒ Object
Constructor Details
#initialize(project, user = nil) ⇒ CandidateRepository
Returns a new instance of CandidateRepository.
8 9 10 11 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 8 def initialize(project, user = nil) @project = project @user = user end |
Instance Attribute Details
#candidate ⇒ Object
Returns the value of attribute candidate.
6 7 8 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 6 def candidate @candidate end |
#experiment ⇒ Object
Returns the value of attribute experiment.
6 7 8 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 6 def experiment @experiment end |
#project ⇒ Object
Returns the value of attribute project.
6 7 8 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 6 def project @project end |
#user ⇒ Object
Returns the value of attribute user.
6 7 8 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 6 def user @user end |
Instance Method Details
#add_metric!(candidate, name, value, tracked_at, step) ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 38 def add_metric!(candidate, name, value, tracked_at, step) candidate.metrics.create!( name: name, value: value, tracked_at: tracked_at, step: step ) end |
#add_metrics(candidate, metric_definitions) ⇒ Object
57 58 59 60 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 57 def add_metrics(candidate, metric_definitions) extra_keys = { tracked_at: :timestamp, step: :step } insert_many(candidate, metric_definitions, ::Ml::CandidateMetric, extra_keys) end |
#add_param!(candidate, name, value) ⇒ Object
47 48 49 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 47 def add_param!(candidate, name, value) candidate.params.create!(name: name, value: value) end |
#add_params(candidate, param_definitions) ⇒ Object
62 63 64 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 62 def add_params(candidate, param_definitions) insert_many(candidate, param_definitions, ::Ml::CandidateParam) end |
#add_tag!(candidate, name, value) ⇒ Object
51 52 53 54 55 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 51 def add_tag!(candidate, name, value) (candidate, [{ key: name, value: value }]) candidate..create!(name: name, value: value) end |
#add_tags(candidate, tag_definitions) ⇒ Object
66 67 68 69 70 71 72 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 66 def (candidate, tag_definitions) return unless tag_definitions.present? (candidate, tag_definitions) insert_many(candidate, tag_definitions, ::Ml::CandidateMetadata) end |
#by_eid(eid) ⇒ Object
13 14 15 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 13 def by_eid(eid) ::Ml::Candidate.with_project_id_and_eid(project.id, eid) end |
#create!(experiment, start_time, tags = nil, name = nil) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 17 def create!(experiment, start_time, = nil, name = nil) create_params = { start_time: start_time, user: user, name: candidate_name(name, ) } candidate = Ml::CreateCandidateService.new(experiment, create_params).execute (candidate, ) candidate end |
#update(candidate, status, end_time) ⇒ Object
31 32 33 34 35 36 |
# File 'app/services/ml/experiment_tracking/candidate_repository.rb', line 31 def update(candidate, status, end_time) candidate.status = status.downcase if status candidate.end_time = end_time if end_time candidate.save end |