wandb 0.1.7 → 0.1.9

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: 6f0f0909ffdfe53479bf0c6a09f09f96c7e0aec1dc846f16d9b42c1b1e7f4fae
4
- data.tar.gz: f1ffc1d2cdabc05964ef0187f5ab168a71ef38077591e3a07bf960da3b5ae8b5
3
+ metadata.gz: fe07e6917e230a051db42ac9d95a887397818e5504cf505d836084749de8cee7
4
+ data.tar.gz: 7d49ebf4b2f85ed7375e6e62fcadce06fe0b3f10aeac5c8d955ea2d4cd537150
5
5
  SHA512:
6
- metadata.gz: 93b0f7df5f4bb660a9d566b3492a75690336eeddbfbe0aad15fc100c292499f5fb93a543f1f9f72b6120b2682d8ee25dd3b5ead6906500efd1f5ccc29f6a7219
7
- data.tar.gz: 95e7472bfa9e0322bb353d6ee77bd76a7b6f1c09edd6ef23f10f294ef982b35bae279b5ccbb4beee44991decf774b3bac45ab708ebbab4dbb0dda47917715545
6
+ metadata.gz: 1538917b3ea0b8fd0a34af20bcd79c7683bbc70ca126a6ba192c6e8645d6810d6fe6e68f3e36018a19b4722173ee72792c47cb12edaa3ac6bfe86d0a7853363d
7
+ data.tar.gz: b816436bb73da8935fa3b1c6c7824b1f7b00601da184b27eed806a7782d924c7531b095a4f7fb5d73a6de3f8d2615b7c2da33b1204922669cad29cfb23f04d61
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.7"
4
+ VERSION = "0.1.9"
5
5
  end
@@ -20,16 +20,18 @@ module Wandb
20
20
  end
21
21
  end
22
22
 
23
- attr_accessor :project_name, :api_key, :custom_loggers
23
+ attr_accessor :project_name, :api_key, :custom_loggers, :history, :sample
24
24
 
25
25
  def initialize(options = {})
26
26
  options = Opts.new(options)
27
27
  @log_model = options.default(:log_model, false)
28
28
  @log_feature_importance = options.default(:log_feature_importance, true)
29
29
  @importance_type = options.default(:importance_type, "gain")
30
+ @normalize_feature_importance = options.default(:normalize_feature_importance, true)
30
31
  @define_metric = options.default(:define_metric, true)
31
32
  @api_key = options.default(:api_key, ENV["WANDB_API_KEY"])
32
33
  @project_name = options.default(:project_name, nil)
34
+ @sample = options.default(:sample, 1.0)
33
35
  @custom_loggers = options.default(:custom_loggers, [])
34
36
  end
35
37
 
@@ -80,19 +82,22 @@ module Wandb
80
82
  end
81
83
 
82
84
  def after_iteration(model, epoch, history)
83
- history.each do |split, metric_scores|
84
- metric = metric_scores.keys.first
85
- values = metric_scores.values.last
86
- epoch_value = values[epoch]
87
-
88
- define_metric(split, metric) if @define_metric && epoch == 0
89
- full_metric_name = "#{split}-#{metric}"
90
- Wandb.log({ full_metric_name => epoch_value })
85
+ log_frequency = (1.0 / @sample).round
86
+ if epoch % log_frequency == 0
87
+ history.to_h.each do |split, metric_scores|
88
+ metric = metric_scores.keys.first
89
+ values = metric_scores.values.last
90
+ epoch_value = values[epoch]
91
+
92
+ define_metric(split, metric) if @define_metric && epoch == 0
93
+ full_metric_name = "#{split}-#{metric}"
94
+ Wandb.log({ full_metric_name => epoch_value })
95
+ end
96
+ @custom_loggers.each do |logger|
97
+ logger.call(model, epoch, history)
98
+ end
99
+ Wandb.log("epoch" => epoch)
91
100
  end
92
- @custom_loggers.each do |logger|
93
- logger.call(model, epoch, history)
94
- end
95
- Wandb.log("epoch" => epoch)
96
101
  false
97
102
  end
98
103
 
@@ -112,6 +117,12 @@ module Wandb
112
117
 
113
118
  def log_feature_importance(model)
114
119
  fi = model.score(importance_type: @importance_type)
120
+
121
+ if @normalize_feature_importance
122
+ total_importance = fi.values.sum
123
+ fi = fi.transform_values { |v| v / total_importance }
124
+ end
125
+
115
126
  fi_data = fi.map { |k, v| [k, v] }
116
127
 
117
128
  table = Wandb::Table.new(data: fi_data, columns: %w[Feature Importance])
data/lib/wandb.rb CHANGED
@@ -73,6 +73,13 @@ module Wandb
73
73
  def plot
74
74
  Plot
75
75
  end
76
+
77
+ # Add this new method
78
+ def run_url
79
+ raise "No active run. Call Wandb.init() first." unless @current_run
80
+
81
+ @current_run.url
82
+ end
76
83
  end
77
84
 
78
85
  # Run class
@@ -113,6 +120,11 @@ module Wandb
113
120
  def log_artifact(artifact)
114
121
  @run.log_artifact(artifact.__pyptr__)
115
122
  end
123
+
124
+ # Add this new method
125
+ def url
126
+ @run.get_url
127
+ end
116
128
  end
117
129
 
118
130
  # Artifact class
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.7
4
+ version: 0.1.9
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-18 00:00:00.000000000 Z
11
+ date: 2024-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pycall