class Tensorflow::NameScope
Attributes
names[R]
stack[R]
Public Class Methods
new()
click to toggle source
# File lib/tensorflow/name_scope.rb, line 7 def initialize @stack = Array.new @names = Set.new end
Public Instance Methods
current_scope()
click to toggle source
# File lib/tensorflow/name_scope.rb, line 23 def current_scope if self.stack.last.nil? nil else self.stack.join("/") end end
name_scope(base_name) { |current_scope| ... }
click to toggle source
# File lib/tensorflow/name_scope.rb, line 12 def name_scope(base_name) name = self.unique_name(base_name) stack.push(name) begin yield current_scope if block_given? ensure stack.pop end end
scoped_name(name)
click to toggle source
# File lib/tensorflow/name_scope.rb, line 31 def scoped_name(name) base_name = case when self.stack.empty? name when self.stack.last.nil? name else "#{self.current_scope}/#{name}" end self.unique_name(base_name) end
unique_name(name)
click to toggle source
# File lib/tensorflow/name_scope.rb, line 44 def unique_name(name) return nil unless name i = 0 check_name = name while self.names.include?(check_name.downcase) i += 1 check_name = "#{name}_#{i}" end self.names << check_name.downcase unless check_name.nil? check_name end