Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/google/objax
https://github.com/google/objax
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/google/objax
- Owner: google
- License: apache-2.0
- Created: 2020-08-20T06:20:40.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-01-27T00:16:56.000Z (10 months ago)
- Last Synced: 2024-10-01T21:10:12.568Z (about 1 month ago)
- Language: Python
- Size: 3.52 MB
- Stars: 768
- Watchers: 26
- Forks: 77
- Open Issues: 51
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-python-machine-learning-resources - GitHub - 38% open · ⏱️ 12.07.2022): (机器学习框架)
- awesome-jax - Objax - Has an object oriented design similar to PyTorch. <img src="https://img.shields.io/github/stars/google/objax?style=social" align="center"> (Libraries)
README
# Objax
[**Tutorials**](https://objax.readthedocs.io/en/latest/notebooks/Objax_Basics.html)
| [**Install**](https://objax.readthedocs.io/en/latest/installation_setup.html)
| [**Documentation**](https://objax.readthedocs.io/en/latest/)
| [**Philosophy**](https://objax.readthedocs.io/en/latest/index.html#objax-philosophy)This is not an officially supported Google product.
Objax is an open source machine learning framework that accelerates research and learning thanks to a
minimalist object-oriented design and a readable code base.
Its name comes from the contraction of Object and [JAX](https://github.com/google/jax) -- a popular high-performance
framework.
Objax is designed **by researchers for researchers** with a focus on simplicity and understandability.
Its users should be able to easily read, understand, extend, and modify it to fit their needs.This is the developer repository of Objax, there is very little user documentation
here, for the full documentation go to [objax.readthedocs.io](https://objax.readthedocs.io/).You can find READMEs in the subdirectory of this project, for example:
* [Sample Code](examples/README.md)
* [Writing documentation](docs/README.md)## User installation guide
You install Objax using `pip` as follows:
```bash
pip install --upgrade objax
```Objax supports GPUs but assumes that you already have some version of CUDA
installed. Here are the extra steps required to install CUDA-enabled jaxlib
(jaxlib releases require CUDA 11.2 or newer):```bash
RELEASE_URL="https://storage.googleapis.com/jax-releases/jax_cuda_releases.html"
JAX_VERSION=`python3 -c 'import jax; print(jax.__version__)'`
pip uninstall -y jaxlib
pip install -f $RELEASE_URL jax[cuda]==$JAX_VERSION
```For more installation options, see https://github.com/google/jax#pip-installation-gpu-cuda
### Useful environment configurations
Here are a few useful options:
```bash
# Prevent JAX from taking the whole GPU memory
# (useful if you want to run several programs on a single GPU)
export XLA_PYTHON_CLIENT_PREALLOCATE=false
```### Testing your installation
You can test your installation by running the code below:
```python
import jax
import objaxprint(f'Number of GPUs {jax.device_count()}')
x = objax.random.normal(shape=(100, 4))
m = objax.nn.Linear(nin=4, nout=5)
print('Matrix product shape', m(x).shape) # (100, 5)x = objax.random.normal(shape=(100, 3, 32, 32))
m = objax.nn.Conv2D(nin=3, nout=4, k=3)
print('Conv2D return shape', m(x).shape) # (100, 4, 32, 32)
```Typically if you get errors running this using CUDA, it probably means your
installation of CUDA or CuDNN has issues.### Runing code examples
Clone the code repository:
```bash
git clone https://github.com/google/objax.git
cd objax/examples
```### Citing Objax
To cite this repository:
```
@software{objax2020github,
author = {{Objax Developers}},
title = {{Objax}},
url = {https://github.com/google/objax},
version = {1.2.0},
year = {2020},
}
```## Developer documentation
Here is information about
[development setup](https://objax.readthedocs.io/en/latest/dev/setup.html)
and a [guide on adding new code](https://objax.readthedocs.io/en/latest/dev/adding_module.html).