Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marella/nn
A neural network library built on top of TensorFlow for quickly building deep learning models.
https://github.com/marella/nn
deep-learning machine-learning neural-networks nn python tensorflow
Last synced: 9 days ago
JSON representation
A neural network library built on top of TensorFlow for quickly building deep learning models.
- Host: GitHub
- URL: https://github.com/marella/nn
- Owner: marella
- License: mit
- Created: 2020-01-24T15:14:07.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-01-27T12:01:36.000Z (almost 5 years ago)
- Last Synced: 2024-11-16T03:37:24.173Z (about 1 month ago)
- Topics: deep-learning, machine-learning, neural-networks, nn, python, tensorflow
- Language: Python
- Size: 8.79 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
A neural network library built on top of TensorFlow for quickly building deep learning models.
[![Build Status](https://travis-ci.org/marella/nn.svg?branch=master)](https://travis-ci.org/marella/nn)
## Usage
`nn.Tensor` is the core data structure which is a wrapper for `tf.Tensor` and provides additional functionality. It can be created using the `nn.tensor()` function:
```py
import nna = nn.tensor([1, 2, 3])
assert isinstance(a, nn.Tensor)
assert a.shape == (3, )
```It supports method chaining:
```py
c = a.square().sum()
assert c.numpy() == 14
```and can be used with `tf.Tensor` objects:
```py
import tensorflow as tfb = tf.constant(2)
c = (a - b).square().sum()
assert c.numpy() == 2
```It can also be used with high level APIs such as `tf.keras`:
```py
model = nn.Sequential([
nn.Dense(128, activation='relu'),
nn.Dropout(0.2),
nn.Dense(10)
])y = model(x)
assert isinstance(y, nn.Tensor)
```and to perform automatic differentiation and optimization:
```py
optimizer = nn.Adam()
with nn.GradientTape() as tape:
outputs = model(inputs)
loss = (targets - outputs).square().mean()
grads = tape.gradient(loss, model.trainable_variables)
optimizer.apply_gradients(zip(grads, model.trainable_variables))
```To use it with ops that expect `tf.Tensor` objects as inputs, wrap the ops using `nn.op()`:
```py
mean = nn.op(tf.reduce_mean)
c = mean(a)
assert isinstance(c, nn.Tensor)maximum = nn.op(tf.maximum, binary=True)
c = maximum(a, b)
assert isinstance(c, nn.Tensor)
```or convert it to a `tf.Tensor` object using the `tf()` method or `nn.tf()` function:
```py
b = a.tf()
assert isinstance(b, tf.Tensor)b = nn.tf(a)
assert isinstance(b, tf.Tensor)
```See more examples [here][examples].
## Installation
Requirements:
- TensorFlow >= 2.0
- Python >= 3.6Install from PyPI (recommended):
```sh
pip install nn
```Alternatively, install from source:
```sh
git clone https://github.com/marella/nn.git
cd nn
pip install -e .
```[TensorFlow] should be installed separately.
## Testing
To run tests, install dependencies:
```sh
pip install -e .[tests]
```and run:
```sh
pytest tests
```[tensorflow]: https://www.tensorflow.org/install
[examples]: https://github.com/marella/train/tree/master/examples