Changelog
=========
All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog `_,
and this project adheres to `Semantic Versioning `_.
[0.2.1] - 2025-02-28
--------------------
Added
^^^^^
- FlashAttention 2 / SDPA support in ``SpatialSelfAttention`` via
``attn_backend`` parameter (``"auto"``, ``"sdpa"``, ``"manual"``).
Automatically dispatches to the fastest kernel on PyTorch >= 2.0.
- ``attn_backend`` parameter propagated to ``SpatialTransformerBlock``
and ``SpatialViT``.
- ``AttnBackend`` type alias exported from ``idx_flow``.
[0.2.0] - 2025-02-28
--------------------
Changed
^^^^^^^
- Split ``layers.py`` into separate modules by responsibility:
``conv``, ``mlp``, ``norm``, ``regularization``, ``attention``,
``vit``, ``pooling``, ``functional``.
All public names remain importable from ``idx_flow`` directly.
- Split ``test_layers.py`` into per-module test files with shared
fixtures in ``conftest.py``.
- Removed ``layers.py`` and ``test_vit_layers.py``.
[0.1.0] - 2025-01-15
--------------------
Initial release.
Added
^^^^^
**Layers**
- ``SpatialConv`` -- spatial convolution for downsampling
- ``SpatialTransposeConv`` -- transpose convolution for upsampling
- ``SpatialUpsampling`` -- distance-based interpolation upsampling
- ``SpatialPooling`` -- mean, max, and sum pooling
- ``SpatialMLP`` -- MLP with spatial gathering, dropout, batch norm, residual connections
- ``GlobalMLP`` -- channel-wise MLP for pointwise transformations
- ``SpatialBatchNorm``, ``SpatialLayerNorm``, ``SpatialInstanceNorm``, ``SpatialGroupNorm``
- ``SpatialDropout``, ``ChannelDropout``
- ``SpatialSelfAttention`` -- multi-head self-attention
- ``SpatialPatchEmbedding``, ``SpatialTransformerBlock``, ``SpatialViT``
- ``Squeeze``, ``Unsqueeze``
**Utilities**
- ``compute_connection_indices``
- ``hp_distance``
- ``get_weights``
- ``get_healpix_resolution_info``
- ``get_initializer``, ``get_activation``
**Initialization options**: Xavier, Kaiming, orthogonal, normal, uniform, zeros.
**Activations**: ReLU, SELU, Leaky ReLU, GELU, ELU, Tanh, Sigmoid, Swish, Mish.