Class: MachineLearningWorkbench::Compressor::OnlineVectorQuantization
- Inherits:
-
VectorQuantization
- Object
- VectorQuantization
- MachineLearningWorkbench::Compressor::OnlineVectorQuantization
- Defined in:
- lib/machine_learning_workbench/compressor/online_vector_quantization.rb
Overview
Online Vector Quantization: VQ with per-centroid decaying learning rates. Optimized for online training.
Constant Summary
Constants inherited from VectorQuantization
VectorQuantization::Verification
Instance Attribute Summary collapse
-
#min_lrate ⇒ Object
readonly
Returns the value of attribute min_lrate.
Attributes inherited from VectorQuantization
#centrs, #dims, #ncentrs, #ntrains, #rng, #vrange
Instance Method Summary collapse
-
#check_lrate(lrate) ⇒ Object
Overloading lrate check from original VQ.
-
#initialize(min_lrate: 0.01, **opts) ⇒ OnlineVectorQuantization
constructor
A new instance of OnlineVectorQuantization.
-
#lrate(centr_idx, lower_bound: min_lrate) ⇒ Object
Decaying per-centroid learning rate.
- #train_one(*args, **kwargs) ⇒ Object
Methods inherited from VectorQuantization
#encode, #most_similar_centr, #new_centr, #reconstr_error, #reconstruction, #similarities, #train
Constructor Details
#initialize(min_lrate: 0.01, **opts) ⇒ OnlineVectorQuantization
Returns a new instance of OnlineVectorQuantization.
8 9 10 11 |
# File 'lib/machine_learning_workbench/compressor/online_vector_quantization.rb', line 8 def initialize min_lrate: 0.01, **opts super **opts.merge({lrate: nil}) @min_lrate = min_lrate end |
Instance Attribute Details
#min_lrate ⇒ Object (readonly)
Returns the value of attribute min_lrate.
6 7 8 |
# File 'lib/machine_learning_workbench/compressor/online_vector_quantization.rb', line 6 def min_lrate @min_lrate end |
Instance Method Details
#check_lrate(lrate) ⇒ Object
Overloading lrate check from original VQ
14 |
# File 'lib/machine_learning_workbench/compressor/online_vector_quantization.rb', line 14 def check_lrate lrate; nil; end |
#lrate(centr_idx, lower_bound: min_lrate) ⇒ Object
Note:
nicely overloads the ‘attr_reader` of parent class
Decaying per-centroid learning rate.
20 21 22 |
# File 'lib/machine_learning_workbench/compressor/online_vector_quantization.rb', line 20 def lrate centr_idx, lower_bound: min_lrate [1/ntrains[centr_idx], lower_bound].max end |
#train_one(*args, **kwargs) ⇒ Object
24 25 26 |
# File 'lib/machine_learning_workbench/compressor/online_vector_quantization.rb', line 24 def train_one *args, **kwargs raise NotImplementedError, "Remember to overload this using the new lrate(idx)" end |