Module: DNN::Utils
- Defined in:
- lib/dnn/core/utils.rb
Overview
This module provides utility functions.
Class Method Summary collapse
-
.broadcast_to(x, target_shape) ⇒ Numo::SFloat
Broadcast to target shape.
-
.cumo2numo(ca) ⇒ Object
Convert cumo to numo.
-
.hash_to_obj(hash) ⇒ Object
Convert hash to an object.
-
.numerical_grad(x, func) ⇒ Object
Perform numerical differentiation.
-
.numo2cumo(na) ⇒ Object
Convert numo to cumo.
-
.sigmoid(x) ⇒ Object
Return the result of the sigmoid function.
-
.softmax(x) ⇒ Object
Return the result of the softmax function.
-
.to_categorical(y, num_classes, narray_type = nil) ⇒ Object
Categorize labels into “num_classes” classes.
-
.to_f(x) ⇒ Object
Force convert to Float.
Class Method Details
.broadcast_to(x, target_shape) ⇒ Numo::SFloat
Broadcast to target shape.
28 29 30 |
# File 'lib/dnn/core/utils.rb', line 28 def self.broadcast_to(x, target_shape) Layers::MathUtils.broadcast_to(x, target_shape) end |
.cumo2numo(ca) ⇒ Object
Convert cumo to numo.
55 56 57 58 59 |
# File 'lib/dnn/core/utils.rb', line 55 def self.cumo2numo(ca) b = ca.to_binary na = Numo::SFloat.from_binary(b) na.reshape(*ca.shape) end |
.hash_to_obj(hash) ⇒ Object
Convert hash to an object.
18 19 20 21 22 |
# File 'lib/dnn/core/utils.rb', line 18 def self.hash_to_obj(hash) return nil if hash == nil dnn_class = DNN.const_get(hash[:class]) dnn_class.from_hash(hash) end |
.numerical_grad(x, func) ⇒ Object
Perform numerical differentiation.
43 44 45 |
# File 'lib/dnn/core/utils.rb', line 43 def self.numerical_grad(x, func) (func.(x + 1e-7) - func.(x)) / 1e-7 end |
.numo2cumo(na) ⇒ Object
Convert numo to cumo.
48 49 50 51 52 |
# File 'lib/dnn/core/utils.rb', line 48 def self.numo2cumo(na) b = na.to_binary ca = Cumo::SFloat.from_binary(b) ca.reshape(*na.shape) end |
.sigmoid(x) ⇒ Object
Return the result of the sigmoid function.
33 34 35 |
# File 'lib/dnn/core/utils.rb', line 33 def self.sigmoid(x) Losses::SigmoidCrossEntropy.sigmoid(x) end |
.softmax(x) ⇒ Object
Return the result of the softmax function.
38 39 40 |
# File 'lib/dnn/core/utils.rb', line 38 def self.softmax(x) Losses::SoftmaxCrossEntropy.softmax(x) end |
.to_categorical(y, num_classes, narray_type = nil) ⇒ Object
Categorize labels into “num_classes” classes.
8 9 10 11 12 13 14 15 |
# File 'lib/dnn/core/utils.rb', line 8 def self.to_categorical(y, num_classes, narray_type = nil) narray_type ||= y.class y2 = narray_type.zeros(y.shape[0], num_classes) y.shape[0].times do |i| y2[i, y[i]] = 1 end y2 end |
.to_f(x) ⇒ Object
Force convert to Float.
62 63 64 65 66 67 68 |
# File 'lib/dnn/core/utils.rb', line 62 def self.to_f(x) if x.is_a?(Xumo::NArray) x[0].to_f else x.to_f end end |