AdityaPandey2612 opened a new pull request, #2403:
URL: https://github.com/apache/systemds/pull/2403

   This PR extends the existing autoencoder implementation to support 
arbitrary-depth encoder–decoder architectures, building directly on the 
original 2-hidden-layer design.
   The current autoencoder code works well for the fixed 2-layer case, but it 
relies on hard-coded assumptions about layer count and parameter layout. This 
makes it difficult to experiment with deeper architectures without duplicating 
large parts of the training logic. The goal of this change is to generalize the 
training pipeline while preserving the original behavior and APIs.
   In short: the existing 2-layer autoencoder remains unchanged, and a new 
generalized path is added for N-layer configurations.
   
   This work is motivated by practical experimentation needs:
   - Enable deeper autoencoders (e.g., multi-layer encoders with mirrored 
decoders)
   - Avoid duplicating training logic for each new depth
   - Reuse the existing SGD, momentum, batching, and decay logic
   - Keep backward compatibility with all existing scripts and tests
   
   Changes:
   - Added a generalized autoencoder entry point that accepts a list of hidden 
layer sizes
   - Refactored training logic to operate over lists of weights and biases 
instead of fixed positional arguments
   - Introduced helper functions to:
       1. build symmetric encoder/decoder layer layouts
       2. flatten and unflatten model state
       3. run forward and backward passes across arbitrary depth
   - Left the original 2-layer autoencoder path intact and unchanged
   No existing public APIs were removed or modified.
   
   Testing
   - Existing autoencoder tests continue to pass without modification
   - New tests validate:
        1. correct output shapes for multi-layer configurations
        2. consistency of behavior when reducing to the 2-layer case
   
   Known limitations
   Parameter server training for the generalized path exposes limitations in 
the current list-based gradient aggregation logic. The code logic breaks when 
attempting to change the mode from default to parameter. Would need fixing of 
internal SystemDS parameter server utility. Follow-up work may be needed to 
fully support paramserv for arbitrary-depth models. This PR does not attempt to 
change paramserv internals; the generalized training is stable under the 
default (non-paramserv) execution path
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to