Skip to content
This repository was archived by the owner on Nov 17, 2023. It is now read-only.
This repository was archived by the owner on Nov 17, 2023. It is now read-only.

The case for splitting model class #417

@piiswrong

Description

@piiswrong

The current model class is specific to feedforward net, but it contains some common functions that all models can use, like save&load. Plus if we want learning rate multipliers for each parameter, it's better if we can do it once in base class rather than in every custom training loop. I propose the following changes:

  1. Split model class into Model, FeedforwardModel (inherits Model), and Trainer (or TrainingPlan? Solver? Executor?) with following functions:
    Model: handles saving, loading, etc. Should hold parameters.
    FeedForwardModel: Subclass of model, handles feedforward specific parts
    Trainer: Implements training loop. Calls optimizer. should have Trainer, ParallelTrainer, Distributed Trainner. learning rate multipliers should be handled by this
  2. Merge the training loop part of LSTM example into LSTMModel
  3. We can also have autoencoder model and RBM model if anyone is still using it.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions