Class: RubyZero::NN::Layers::ModelList

Inherits:
Layer
  • Object
show all
Defined in:
lib/rubyzero/nn/layers/modellist.rb

Overview

The list of models that can be used in the neural network. This class supports to containing different Model classes.

Direct Known Subclasses

ModelStack

Instance Method Summary collapse

Methods inherited from Model

#call, #eval, #forward, #inspect, load, #save, #train

Constructor Details

#initialize(list = nil) ⇒ ModelList

Returns a new instance of ModelList.



5
6
7
8
9
10
11
# File 'lib/rubyzero/nn/layers/modellist.rb', line 5

def initialize(list=nil)
    if list
        @models = list
    else
        @models = []
    end
end

Instance Method Details

#+(modellist) ⇒ Object



25
26
27
# File 'lib/rubyzero/nn/layers/modellist.rb', line 25

def +(modellist)
    return ModelList.new(@models + modellist.elements)
end

#<<(model) ⇒ Object



19
20
21
# File 'lib/rubyzero/nn/layers/modellist.rb', line 19

def <<(model)
    @models << model
end

#__get_str__(num_indents) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/rubyzero/nn/layers/modellist.rb', line 31

def __get_str__(num_indents)
    indents = "  " * num_indents
    s = "#{indents}#{self.class.name} #{parameters.size} params\n"
    @models.each do |child|
        s += child.__get_str__(num_indents + 1)
    end
    return s
end

#each(&block) ⇒ Object



28
29
30
# File 'lib/rubyzero/nn/layers/modellist.rb', line 28

def each(&block)
    @models.each(&block)
end

#elementsObject



22
23
24
# File 'lib/rubyzero/nn/layers/modellist.rb', line 22

def elements
    return @models
end

#parametersObject



12
13
14
15
16
17
18
# File 'lib/rubyzero/nn/layers/modellist.rb', line 12

def parameters
    params = []
    @models.each do |model|
        params += model.parameters.elements
    end
    return RubyZero::NN::Parameters.new(params)
end