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.
Metadata
Release files for unifyml 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| unifyml-0.0.2.tar.gz | 249.7 kB | Details |
Release files / unifyml-0.0.2.tar.gz
| Download URL | unifyml-0.0.2.tar.gz |
|---|---|
| Size | 249.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
11cab85fc23a5ec9c5038a5e106fc4511dce3c3a55a5f95290d2631669622e2e
|
|
BLAKE2b-256 checksum How to use checksums |
4860957f7e8e3c91c712f9ce91d2cae027ec04cedfaac6adf14c9d4b94450b46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|