Unified API for machine learning
Project description
UnifyML
🌐 Homepage 📖 Documentation 🔗 API • ▶ Videos • Examples
UnifyML provides a unified math and neural network API for Jax, PyTorch, TensorFlow and NumPy.
See the installation Instructions on how to compile the optional custom CUDA operations.
from jax import numpy as jnp
import torch
import tensorflow as tf
import numpy as np
from unifyml import math
math.sin(1.)
math.sin(jnp.asarray([1.]))
math.sin(torch.tensor([1.]))
math.sin(tf.constant([1.]))
math.sin(np.asarray([1.]))
Compatibility
- Writing code that works with PyTorch, Jax, and TensorFlow makes it easier to share code with other people and collaborate.
- Your published research code will reach a broader audience.
- When you run into a bug / roadblock with one library, you can simply switch to another.
- UnifyML can efficiently convert tensors between ML libraries on-the-fly, so you can even mix the different ecosystems.
Fewer mistakes
- No more data type troubles: UnifyML automatically converts data types where needed and lets you specify the FP precision globally or by context!
- No more reshaping troubles: UnifyML performs reshaping under-the-hood.
- Is
neighbor_idx.at[jnp.reshape(idx, (-1,))].set(jnp.reshape(cell_idx, (-1,) + cell_idx.shape[-2:]))
correct?: UnifyML provides a custom Tensor class that lets you write easy-to-read, more concise, more explicit, less error-prone code.
Unique features
- n-dimensional operations: With UnifyML, you can write code that automatically works in 1D, 2D and 3D, choosing the corresponding operations based on the input dimensions.
- Preconditioned linear solves: UnifyML can build sparse matrices from your Python functions and run linear solvers with preconditioners.
- Flexible neural network architectures: UnifyML provides various configurable neural network architectures, from MLPs to U-Nets.
- Non-uniform tensors: UnifyML allows you to stack tensors of different sizes and keeps track of the resulting shapes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
unifyml-0.0.2.tar.gz
(249.7 kB
view details)
File details
Details for the file unifyml-0.0.2.tar.gz
.
File metadata
- Download URL: unifyml-0.0.2.tar.gz
- Upload date:
- Size: 249.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.24.0 setuptools/49.6.0.post20200814 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11cab85fc23a5ec9c5038a5e106fc4511dce3c3a55a5f95290d2631669622e2e |
|
MD5 | 60ff614cd6bd22571efe59b5018555a0 |
|
BLAKE2b-256 | 4860957f7e8e3c91c712f9ce91d2cae027ec04cedfaac6adf14c9d4b94450b46 |