wandb 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a00bf9591759e1339bca2ff33aca8dc245f71e8ef8f9e3aa4cd70a59f598a10
4
- data.tar.gz: 880bed08a72bb3f03d48d093ab68a94ab8b706b759ec10945008979fd0c044c8
3
+ metadata.gz: 310ede46ccba30aa00bfbb81fbb8ffdefd818528c7ae09523e7dca9629258892
4
+ data.tar.gz: 07643a463e807e99db1a4e874bd85b749f6d65b644f15e0423505ead63ec7749
5
5
  SHA512:
6
- metadata.gz: b6148f71160761a123696f0beac8b2ebe68064a4f64bd55ce1e9ec417c44b5c032a9f60b77394a3ebd0f0535e60c2ce50e53b5606f8acb958bfd35148c0f4a53
7
- data.tar.gz: 14a72f4b7b0bc05234d9e0e276c724b1077ac61c07b755f90ce365d4d596c9183928b5df6d9396391a9339d6441b92e1e4c0733f67ee19634ba7fec47acb6818
6
+ metadata.gz: 00e7a6fe5e888d931c1abbc6047207859a46b024c83a05a6e87feeea8d20576f2f3da1d6a5c851c9dd945e7bd564ecfc56b5c4707ed3b54284aea97ecb4dac46
7
+ data.tar.gz: d4b2c592d6a4a5e079024d48cb7a97834a883f1e5e12dbe1c856255d4beed84c90f54f629d818cad14513f4778b08657e6781c958ff977fe607d1a74c0a2deec
data/lib/wandb/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Wandb
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.6"
5
5
  end
@@ -19,7 +19,7 @@ module Wandb
19
19
  end
20
20
  end
21
21
 
22
- attr_accessor :project_name, :api_key
22
+ attr_accessor :project_name, :api_key, :custom_loggers
23
23
 
24
24
  def initialize(options = {})
25
25
  options = Opts.new(options)
@@ -29,22 +29,21 @@ module Wandb
29
29
  @define_metric = options.default(:define_metric, true)
30
30
  @api_key = options.default(:api_key, ENV["WANDB_API_KEY"])
31
31
  @project_name = options.default(:project_name, nil)
32
-
33
- raise "WANDB_API_KEY required" unless api_key
34
- raise "project_name required" unless project_name
35
-
36
- Wandb.login(api_key: api_key)
37
- Wandb.init(project: project_name)
38
-
39
- return if Wandb.current_run
40
-
41
- raise "You must call wandb.init() before WandbCallback()"
32
+ @custom_loggers = options.default(:custom_loggers, [])
42
33
  end
43
34
 
44
35
  def before_training(model)
45
- # Update Wandb config with model configuration
46
- Wandb.current_run.config = model.params
47
- Wandb.log(model.params)
36
+ Wandb.login(api_key: api_key)
37
+ Wandb.init(project: project_name)
38
+ config = JSON.parse(model.save_config)
39
+ log_conf = {
40
+ learning_rate: config.dig("learner", "gradient_booster", "tree_train_param", "learning_rate").to_f,
41
+ max_depth: config.dig("learner", "gradient_booster", "tree_train_param", "max_depth").to_f,
42
+ n_estimators: model.num_boosted_rounds
43
+ }
44
+ Wandb.current_run.config = log_conf
45
+
46
+ Wandb.log(log_conf)
48
47
  model
49
48
  end
50
49
 
@@ -57,7 +56,7 @@ module Wandb
57
56
 
58
57
  # Log best score and best iteration
59
58
  unless model.best_score
60
- Wandb.finish
59
+ finish
61
60
  return model
62
61
  end
63
62
 
@@ -65,18 +64,21 @@ module Wandb
65
64
  "best_score" => model.best_score.to_f,
66
65
  "best_iteration" => model.best_iteration.to_i
67
66
  )
68
-
69
- Wandb.finish
70
- FileUtils.rm_rf(Rails.root.join("wandb"))
67
+ finish
71
68
 
72
69
  model
73
70
  end
74
71
 
72
+ def finish
73
+ Wandb.finish
74
+ FileUtils.rm_rf(File.join(Dir.pwd, "wandb"))
75
+ end
76
+
75
77
  def before_iteration(_model, _epoch, _history)
76
78
  false
77
79
  end
78
80
 
79
- def after_iteration(_model, epoch, history)
81
+ def after_iteration(model, epoch, history)
80
82
  history.each do |split, metric_scores|
81
83
  metric = metric_scores.keys.first
82
84
  values = metric_scores.values.last
@@ -86,6 +88,9 @@ module Wandb
86
88
  full_metric_name = "#{split}-#{metric}"
87
89
  Wandb.log({ full_metric_name => epoch_value })
88
90
  end
91
+ @custom_loggers.each do |logger|
92
+ logger.call(model, epoch, history)
93
+ end
89
94
  Wandb.log("epoch" => epoch)
90
95
  false
91
96
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wandb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Shollenberger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-16 00:00:00.000000000 Z
11
+ date: 2024-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pycall