Skip to main content

Provides functional API for model creation in PyTorch.

Project description

Pytorch Functional

PyPi version PyPI license Documentation Status Python 3.7 Python 3.8 Python 3.9 Python 3.10

Pytorch Functional is MIT licensed library that adds functional API for model creation to PyTorch.

Defining complex models in PyTorch required creating classes. Defining models in Keras is easier. Pytorch Functional makes it just as easy.

With Pytorch Functional, you can create neural networks without tedious calculations of input shape for each layer.

Features:

  • Small extension of PyTorch
  • No dependencies besides PyTorch
  • Produces models entirely compatible with PyTorch
  • Reduces the amount of code that you need to write
  • Works well with complex architectures
  • Package and documentation automatically tested

New in 0.4.0

Using the new version of the API you can create functional model just like in Keras: by calling the layer with placeholders as arguments. Layer will be then automagically registered in your model.

from torch import nn
from pytorch_functional import FunctionalModel, Input

inputs = Input(shape=(1, 28, 28))
x = nn.Flatten()(inputs)
x = nn.Linear(x.shape[1], 10)(x)
outputs = nn.ReLU()(x)
model = FunctionalModel(inputs, outputs)
model
FunctionalModel(
    (module000_depth001): Flatten(start_dim=1, end_dim=-1)
    (module001_depth002): Linear(in_features=784, out_features=10, bias=True)
    (module002_depth003): ReLU()
)
  • 100% backward compatibile models
  • You can mix the new and old API
  • Works with multiple arguments

Example

To create a functional model, call a placeholder with the layer as an argument. This will return another placeholder, which you can use.

from torch import nn
from pytorch_functional import FunctionalModel, Input

inputs = Input(shape=(1, 28, 28))
x = inputs(nn.Flatten())
outputs = x(nn.Linear(x.shape[1], 10))(nn.ReLU())
model = FunctionalModel(inputs, outputs)
model
FunctionalModel(
    (module000_depth001): Flatten(start_dim=1, end_dim=-1)
    (module001_depth002): Linear(in_features=784, out_features=10, bias=True)
    (module002_depth003): ReLU()
)

See more examples in Quick Start.

Gentle introduction

There's a notebook showing the basic usage of Pytorch Functional. With it you can:

  • Learn Pytorch Functional in an interactive way
  • See visualizations of graphs that are created under the hood
  • Try the package out before installing it on your computer

Click: Open In Colab

Installation

Install easily with pip:

pip install pytorch-functional

Links

Create an issue if you have noticed a problem! Send me an e-mail if you want to get involved: sjmikler@gmail.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytorch-functional-0.4.14.tar.gz (14.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page