This project focuses on reconstructing high-dimensional spectral data using a deep residual autoencoder built with PyTorch. It is based on unsupervised learning and explores how well the model can learn meaningful representations from spectral inputs.
- Built a residual autoencoder for spectral data reconstruction
- Used a combination of losses (MSE, cosine similarity, smoothness)
- Added residual connections to improve learning
- Visualized reconstruction and latent space using UMAP
- Shape:
(samples, 61 wavelengths, 4 components) - Loaded using NumPy from
.datfile
Basic structure:
Input → Encoder → Latent → Decoder → Output
- Latent size: 128
- Activation: SELU
- Dropout: 0.2
- Normalization: LayerNorm
- Optimizer with learning rate scheduling (OneCycleLR)
- Early stopping based on validation loss
- Mixed precision training (if GPU available)
Run:
python train.py- Compared original vs reconstructed spectra
- Checked residual errors
- Used UMAP to visualize latent space
- Saved model:
best_deep_res_autoencoder.pth
- PyTorch
- NumPy
- Matplotlib
- scikit-learn
- UMAP
This was mainly a learning + experimental project to understand:
- autoencoders
- high-dimensional data
- representation learning
Dharmik Dudhat