Class: Chainer::Reporter
- Inherits:
-
Object
- Object
- Chainer::Reporter
- Includes:
- ReportService
- Defined in:
- lib/chainer/reporter.rb
Instance Attribute Summary collapse
-
#observation ⇒ Object
Returns the value of attribute observation.
-
#observer_names ⇒ Object
Returns the value of attribute observer_names.
Class Method Summary collapse
Instance Method Summary collapse
- #add_observer(name, observer) ⇒ Object
- #add_observers(prefix, observers, skipself: true) ⇒ Object
-
#initialize ⇒ Reporter
constructor
A new instance of Reporter.
- #report(values, observer = nil) ⇒ Object
- #scope(observation) ⇒ Object
Constructor Details
#initialize ⇒ Reporter
Returns a new instance of Reporter.
11 12 13 14 |
# File 'lib/chainer/reporter.rb', line 11 def initialize @observer_names = {} @observation = {} end |
Instance Attribute Details
#observation ⇒ Object
Returns the value of attribute observation.
9 10 11 |
# File 'lib/chainer/reporter.rb', line 9 def observation @observation end |
#observer_names ⇒ Object
Returns the value of attribute observer_names.
9 10 11 |
# File 'lib/chainer/reporter.rb', line 9 def observer_names @observer_names end |
Class Method Details
.report_scope(observation) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/chainer/reporter.rb', line 21 def self.report_scope(observation) current = @@reporters[-1] old = current.observation current.observation = observation yield current.observation = old end |
.save_report(values, observer = nil) ⇒ Object
16 17 18 19 |
# File 'lib/chainer/reporter.rb', line 16 def self.save_report(values, observer=nil) reporter = @@reporters[-1] reporter.report(values, observer) end |
Instance Method Details
#add_observer(name, observer) ⇒ Object
46 47 48 |
# File 'lib/chainer/reporter.rb', line 46 def add_observer(name, observer) @observer_names[observer.object_id] = name end |
#add_observers(prefix, observers, skipself: true) ⇒ Object
50 51 52 53 54 |
# File 'lib/chainer/reporter.rb', line 50 def add_observers(prefix, observers, skipself: true) observers.call(skipself: skipself) do |name, observer| @observer_names[observer.object_id] = "#{prefix}#{name}" end end |
#report(values, observer = nil) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/chainer/reporter.rb', line 29 def report(values, observer=nil) # TODO: keep_graph_on_report option if observer observer_id = observer.object_id unless @observer_names.keys.include?(observer_id) raise "Given observer is not registered to the reporter." end observer_name = @observer_names[observer_id] values.each do |key, value| name = "#{observer_name}/#{key}" @observation[name] = value end else @observation.update(values) end end |
#scope(observation) ⇒ Object
56 57 58 59 60 61 62 63 |
# File 'lib/chainer/reporter.rb', line 56 def scope(observation) @@reporters << self old = @observation @observation = observation yield @observation = old @@reporters.pop end |