Skip to content

Migration from v1 to v2 ​

v2 preserves the project goal but changes internals to a composable pipeline.

Architecture changes ​

v1v2Migration
computeHiddenOutput duplicated across modelsFeatureMap::transformUse RandomAdditiveMap, RbfMap, ElmAutoEncoderLayer, or StackedFeatureMap
Some models accepted BackendEvery model accepts BackendPass Backend::kCpu or Backend::kGpu explicitly
RBF activation enumRbfMap feature mapReplace ActivationFunction::kRbf usage with RbfMap
H-OS-ELM fixed random stackELM-AE learned stackUse HierarchicalOsElm with hiddenNodesPerLayer
Hard-coded 1e-8 ridge termridgeAlphaPass a positive ridgeAlpha
Demo fabricated training dataBundled dataset and real metricsUse dataset IO and demo endpoints

API notes ​

  • BatchElm keeps its constructor shape and adds ridgeAlpha.
  • OsElm and OsCelm accept RlsOptions.
  • OsCelm gains Backend for consistency.
  • HierarchicalOsElm now learns ELM-AE layers during initialization.

Code migration example ​

Before:

cpp
feature_elm::BatchElm<float> model(numInputs, hiddenNodes, feature_elm::ActivationFunction::kSigmoid);

After, with explicit backend and ridge alpha:

cpp
feature_elm::BatchElm<float> model(
    numInputs,
    hiddenNodes,
    feature_elm::ActivationFunction::kSigmoid,
    feature_elm::Backend::kCpu,
    1e-6f);

Documentation migration ​

See upgrade baseline and H-OS-ELM migration for regression notes.

Released under the MIT License.