Doron Adler PRO
Norod78
AI & ML interests
Fooling around with Generative machine learning models.
Recent Activity
reacted to matteospanio's post with 🚀 2 days ago
🎶 Released mule-torch — an unofficial PyTorch port of MULE (SF-NFNet-F0), SiriusXM/Pandora's music-audio embedding model (McCallum et al., ISMIR 2022).
No retraining: I re-implemented the architecture in pure PyTorch and transferred the original TensorFlow weights, then checked it layer by layer against the genuine TF pipeline.
✅ End-to-end clip-embedding cosine 0.9999999 vs the original
✅ ONNX backbone parity < 1e-6
✅ 62.35M params (paper: ~62.4M)
✅ Batched, GPU-native, ONNX-exportable — none of which the original `Analysis` pipeline does
```python
pip install mule-torch
```
```python
from mule_torch import MuleModel
emb = MuleModel.from_pretrained()(waveform) # (B, T)@16kHz -> (B, 1728)
```
🤗 Weights: https://huggingface.co/matteospanio/mule
💻 Code: https://github.com/matteospanio/mule-torch
📦 PyPI: https://pypi.org/project/mule-torch/
The fun bug: parity was perfect through every conv but the block output was anti-correlated (cos = −1). Cause: the learnable skip-init gains couldn't be mapped by layer name (Keras scrambles the order) — they had to be recovered from the graph.
⚠️ Unofficial, community port — not affiliated with or endorsed by the original authors. All credit to them; please cite the paper. Weights inherit CC-BY-NC-4.0. liked a Space 2 days ago
google/TIPSv2 liked a Space 3 days ago
ideogram-ai/ideogram4