**Release Date**: October 2024
New Features and Improvements:
1. **PyTorch Backend Support**:
- VGSLify now supports the **PyTorch backend**, alongside TensorFlow. This required updates to the LayerFactory base class to handle parsing the VGSL specification and configuring layers for PyTorch.
- The `TensorFlowLayerFactory` and `TorchLayerFactory` classes are now responsible for implementing their respective layer types.
2. **Refactor of VGSL Parsing and Layer Handling**:
- A base class has been introduced for parsing models back to the VGSL specification, with backend-specific subclasses handling the necessary package-specific logic.
- The overall codebase has been **simplified** by merging redundant functions. For example, `LSTM`, `GRU`, and bidirectional RNNs now share more common code, as do pooling layers like `AvgPool` and `MaxPool`.
3. **New `model_name` Parameter**:
- The `VGSLModelGenerator.generate_model` function now accepts a `model_name` parameter, allowing users to specify a custom model name instead of the default `"VGSL_Model"`.
4. **Reduced Code Duplication**:
- Significant reduction of duplicate code, particularly in the handling of RNNs (LSTM, GRU, bidirectional RNNs) and pooling layers (AvgPool, MaxPool).
5. **Updated Documentation**:
- The documentation, README, and examples have been updated to reflect all changes, including PyTorch support, the `model_name` parameter, and refactoring of VGSL parsing and layer handling.
- Tutorials and examples are available to guide users through the new features.
Documentation is available at: [VGSLify Documentation](https://timkoornstra.github.io/VGSLify/).