Class: TensorStream::Train::GradientDescentOptimizer

Inherits:
Object
  • Object
show all
Defined in:
lib/tensor_stream/train/gradient_descent_optimizer.rb

Overview

High Level implementation of the gradient descent algorithm

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(learning_rate, _options = {}) ⇒ GradientDescentOptimizer

Returns a new instance of GradientDescentOptimizer.



7
8
9
# File 'lib/tensor_stream/train/gradient_descent_optimizer.rb', line 7

def initialize(learning_rate, _options = {})
  @learning_rate = learning_rate
end

Instance Attribute Details

#learning_rateObject

Returns the value of attribute learning_rate.



5
6
7
# File 'lib/tensor_stream/train/gradient_descent_optimizer.rb', line 5

def learning_rate
  @learning_rate
end

Instance Method Details

#minimize(cost) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/tensor_stream/train/gradient_descent_optimizer.rb', line 11

def minimize(cost)
  trainable_vars = TensorStream.trainable_variables
  derivatives = TensorStream.gradients(cost, trainable_vars)
  trainable_vars.each_with_index.collect do |var, index|
    var.assign_sub(derivatives[index] * @learning_rate)
  end
end