Skip to main content

a library to create convolution from any torch network

Project description

A library to compute N-D convolutions, transposed convolutions and recursive convolution in pytorch, using Linear filter or arbitrary functions as filter. It also gives the option of automaticly finding convolution parameters to match a desired output shape.

Instalation

Use pip3 install torchConvNd

Documentation

convNd

convNd(x, weight, kernel, stride=1, dilation=1, padding=0, bias=None, padding_mode='constant', padding_value=0)

N-Dimensional convolution.

Inputs :

x : torch.tensor of shape (batch_size, C_in, *shape).

Weight : torch.tensor of size (C_in * kernel[0] * kernel[1] * ...kernel[n_dims], C_out).

kernel : array-like or int, kernel size of the convolution.

stride : array-like or int, stride length of the convolution.

dilation : array-like or int, dilation of the convolution.

padding : None, array-like or int, padding size.

bias : None or torch.tensor of size (C_out, ).

padding_mode, padding_value: see pad.

Outputs :

out : torch.tensor of shape (batch_size, C_out, *shape_out).

ConvNd

ConvNd(in_channels, out_channels, kernel, stride=1, dilation=1, padding=0, bias=False, padding_mode='constant', padding_value=0)

Equivalent of convNd as a torch.nn.Module class.

Inputs :

in_channels : int, number of in channels.

out_channels : int, number of out channels.

bias : boolean, controls the usage or not of biases.

kernel, stride, dilation, padding, padding_mode, padding_value: Same as in convNd.

convTransposeNd

convTransposeNd(x, weight, kernel, stride=1, dilation=1, padding=0, bias=None, padding_mode='constant', padding_value=0)

Transposed convolution (using repeat_intereleave).

Inputs :

x : torch.tensor of shape (batch_size, C_in, *shape).

Weight : torch.tensor of size (C_in * kernel[0] * kernel[1] * ...kernel[n_dims], C_out).

kernel : array-like or int, kernel size of the transposed convolution.

stride : array-like or int, stride length of the transposed convolution.

dilation : array-like or int, dilation of the convolution.

padding : None, array-like or int, padding size.

bias : None or torch.tensor of size (C_out, ).

padding_mode, padding_value: see pad.

Outputs :

out : torch.tensor of shape (batch_size, *shape_out).

ConvTransposeNd

ConvTransposeNd(in_channels, out_channels, kernel, stride=1, dilation=1, padding=0, bias=None, padding_mode='constant', padding_value=0)

Equivalent of convTransposeNd as a torch.nn.Module class.

Inputs :

in_channels : int, number of in channels.

out_channels : int, number of out channels.

bias : boolean, controls the usage or not of biases.

kernel, stride, dilation, padding, padding_mode, padding_value: Same as in convTransposeNd.

convNdFunc

convNdFunc(x, func, kernel, stride=1, padding=0, stride_transpose=1, padding_mode='constant', padding_value=0, *args)

Equivalent of convNd using an arbitrary filter func.

Inputs :

x : torch.tensor of shape (batch_size, C_in, *shape).

func : function, taking a torch.tensor of shape (batch_size, C_in, *kernel) and outputs a torch.tensor of shape (batch_size, C_out).

kernel : array-like or int, kernel size of the convolution.

stride : array-like or int, stride length of the convolution.

dilation : array-like or int, dilation of the convolution.

padding : None, array-like or int, padding size.

stride_transpose : array-like or int, equivalent to stride in convTransposeNd.

padding_mode, padding_value: see pad.

*args: additional arguments to pass to func.

Outputs :

out : torch.tensor of shape (batch_size, *shape_out).

*(additional returns) : any additional returns of func.

ConvNdFunc

ConvNdFunc(func, kernel, stride=1, padding=0, padding_mode='constant', padding_value=0)

Equivalent of convNdFunc as a torch.nn.Module class.

Inputs :

func, kernel, stride, dilation, padding, stride_transpose, padding_mode, padding_value : Same as in convNdFunc.

torchConvNd.Utils

listify

listify(x, dims=1)

Transform x to an iterable if it is not.

Inputs :

x : array like or non iterable object (or string), object to listify.

dims : int, array size to obtain.

Outputs :

out : array like, listified version of x.

convShape

convShape(input_shape, kernel, stride=1, dilation=1, padding=0, stride_transpose=1)

Compute the ouput shape of a convolution.

Inputs :

input_shape : array-like or int, shape of the input tensor.

kernel : array-like or int, kernel size of the convolution.

stride : array-like or int, stride length of the convolution.

dilation : array-like or int, dilation of the convolution.

padding : None, array-like or int, padding size.

stride_transpose : array-like or int, equivalent to stride in convTransposeNd.

Outputs :

shape : array-like or int, predicted output shape of the convolution.

autoShape

autoShape(input_shape, kernel, output_shape, max_dilation=3)

Compute the optimal parameters stride, dilation, padding and stride_transpose to match output_shape.

Inputs :

input_shape : array-like or int, shape of the input tensor.

kernel : array-like or int, kernel size of the convolution.

output_shape : array-like or int, target shape of the convolution.

max_dilation : array-like or int, maximum value of dialtion.

Outputs :

kernel : array-like or int, listified(kernel, len(input_shape)) if input_shape is a list, else kernel.

stride : array-like or int, stride length of the convolution.

dilation : array-like or int, dilation of the convolution.

padding : array-like or int, padding size.

stride_transpose : array-like or int, equivalent to stride in convTransposeNd.

pad

pad(x, padding, padding_mode='constant', padding_value=0)

Based on torch.nn.functional.pad.

Inputs :

x : torch.tensor, input tensor.

padding : array-like or int, size of the padding (identical on each size).

padding_mode : 'constant', 'reflect', 'replicate' or 'circular', see torch.nn.functional.pad.

padding_value : float, value to pad with if padding_mode id 'constant'.

Outputs :

out : torch.tensor, paded tensor.

Pad

Pad(padding, padding_mode='constant', padding_value=0)

Equivalent of pad which returns a function.

Inputs :

padding, padding_mode, padding_value : same as with pad

view

view(x, kernel, stride=1)

Generate a view (for a convolution) with parameters kernel and stride.

Inputs :

x : torch.tensor, input tensor.

kernel : array-like or int, kernel size of the convolution.

stride : array-like or int, stride length of the convolution.

Outputs :

out : torch.tensor, strided tensor.

View

View(kernel, stride=1)

Equivalent of view which returns a function.

Inputs :

kernel, stride : same as in view.

Flatten

Flatten()

A torch.nn.Module class that takes a tensor of shape (N, i, j, k...) and reshape it to (N, i*j*k*...).

Reshape

Reshape(shape)

A torch.nn.Module class that takes a tensor of shape (N, i) and reshape it to (N, *shape).

Inputs :

shape : array-like or int, shape to obtain.

Clip

Clip(shape)

A torch.nn.Module that takes a slice of a tensor of size shape (in the center).

Inputs :

shape : array-like or int, shape to obtain (doesn't affect an axis where shape=-1).

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

torchConvNd-0.2.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

torchConvNd-0.2.0-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file torchConvNd-0.2.0.tar.gz.

File metadata

  • Download URL: torchConvNd-0.2.0.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.5

File hashes

Hashes for torchConvNd-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9f0fa648f82ebd504222cf58b86b3400ba0b2509f37a36df060af319f0456a85
MD5 aaa66358588626a541a515663eded722
BLAKE2b-256 ea9b73f0d25f2ff6305c482a78e593cdb89dd0435c69dc6a9083e0a0f8a2cb29

See more details on using hashes here.

File details

Details for the file torchConvNd-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: torchConvNd-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.5

File hashes

Hashes for torchConvNd-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 093cd2d70a926867785f3fb1ac36da2373c0526f0d7d517924035fe781b75020
MD5 9a1975ce38fe0281655fe448a8a0458c
BLAKE2b-256 47806973e60c0da1ceea31b5b538c5a34f4a0b0e845d463f3dea49cfabc6d627

See more details on using hashes here.

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