A library of complex-valued neural networks
Project description
cv_net_library
The idea of this library is just to implement Complex layers. so that everything else stays the same as any PyTorch code.
Installation
Using [PIP]
Only use complex-valued neural networks library:
pip install cv-net-library==0.0.2
Using GitHub
Useful if you want to modify the source code and view the relevant tests:
address
To Use
Import the cv_net_library base class. then Import related classes or functions from the corresponding module.
The functions in cv_net_library has the same function as the corresponding function in Pytorch, and the prefix Complex is added before the original function. as the following modules. If you have any inquiries regarding the functionality or parameters of any function, please visit GitHub to examine the original source code.
layer
-
ComplexLayers
ComplexConv2dComplexConv1dComplexConv3dComplexFlattenComplexConvTransposed2dComplexLinear -
ComplexDropout
ComplexDropout2DComplexDropoutComplexDropoutRespectively -
ComplexPooling
ComplexAvgPool1DComplexAvgPool2DComplexAvgPool3DComplexPolarAvgPooling2DComplexMaxPool2DComplexUnPooling2D -
ComplexUpSampooling
ComplexUpSamplingComplexUpSamplingBilinear2dComplexUpSamplingNearest2d
function
-
ComplexBatchNorm
ComplexBatchNormComplexBatchNorm1dComplexBatchNorm2d
activation
-
ComplexActivations
complex_relucomplex_elucomplex_exponentialcomplex_sigmoidcomplex_tanhcomplex_hard_sigmoidcomplex_leaky_relucomplex_selucomplex_softpluscomplex_softsigncomplex_softmaxmodreluzrelucomplex_cardioidsigmoid_realsoftmax_real_with_abssoftmax_real_with_avgsoftmax_real_with_multsoftmax_of_softmax_real_with_multsoftmax_of_softmax_real_with_avgsoftmax_real_by_parametersoftmax_real_with_polargeorgiou_cdbpcomplex_signummvn_activationapply_polpol_tanhpol_sigmoidpol_selu
loss
-
ComplexLoss
ComplexAverageCrossEntropyComplexAverageCrossEntropyAbsComplexMeanSquareErrorComplexAverageCrossEntropyIgnoreUnlabeledComplexWeightedAverageCrossEntropyComplexWeightedAverageCrossEntropyIgnoreUnlabeled
Example
# Make a A-ConvNets
import torch.nn as nn
import cv_net_library
from cv_net_library.activation.ComplexActivation import complex_relu, complex_softmax
from cv_net_library.layer.ComplexLayers import ComplexLinear, ComplexConv2d
from cv_net_library.layer.ComplexDropout import ComplexDropout2D
from cv_net_library.layer.ComplexPooling import ComplexMaxPool2D
from cv_net_library.layer.ComplexUpSampling import ComplexUpSamplingBilinear2d
from cv_net_library.layer.ComplexLayers import ComplexLinear, ComplexConv2d
from cv_net_library.function.ComplexBatchNorm import ComplexBatchNorm2d, ComplexBatchNorm1d
from cv_net_library.loss.ComplexLoss import ComplexAverageCrossEntropy, ComplexAverageCrossEntropyAbs
class ComplexNet(nn.Module):
def __init__(self):
super(ComplexNet, self).__init__()
self.conv1 = ComplexConv2d(1, 16, 13, 1)
self.bn2d1 = ComplexBatchNorm2d(16, track_running_stats=False)
self.maxpool1 = ComplexMaxPool2D(2, 2)
self.conv2 = ComplexConv2d(16, 32, 13, 1)
self.bn2d2 = ComplexBatchNorm2d(32, track_running_stats=False)
self.maxpool2 = ComplexMaxPool2D(2, 2)
self.conv3 = ComplexConv2d(32, 64, 12, 1)
self.bn2d3 = ComplexBatchNorm2d(64, track_running_stats=False)
self.maxpool3 = ComplexMaxPool2D(2, 2)
self.dropout1 = ComplexDropout2D(p=0.5)
self.conv4 = ComplexConv2d(64, 128, 10, 1)
self.bn2d4 = ComplexBatchNorm2d(128, track_running_stats=False)
self.conv5 = ComplexConv2d(128, 7, 6, 1)
self.bn2d5 = ComplexBatchNorm2d(7, track_running_stats=False)
def forward(self, x):
x = self.conv1(x)
x = self.bn2d1(x)
x = complex_relu(x)
x = self.maxpool1(x)
x = self.conv2(x)
x = self.bn2d2(x)
x = complex_relu(x)
x = self.maxpool2(x)
x = self.conv3(x)
x = self.bn2d3(x)
x = complex_relu(x)
x = self.maxpool3(x)
x = self.dropout1(x)
x = self.conv4(x)
x = self.bn2d4(x)
x = complex_relu(x)
x = self.conv5(x)
x = self.bn2d5(x)
x = x.view(x.shape[0], -1)
x = complex_softmax(x, 1)
return x
Update Log
0.0.3 The README file for version 0.0.2 was not updated successfully
0.0.2 fix bug, Added pip installation mode, verified the example.
0.0.1 : The original upload includes a variety of complex-valued neural networks modules.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cv_net_library-0.0.3.tar.gz.
File metadata
- Download URL: cv_net_library-0.0.3.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d3f8d52d9d2e8f54b7f1a0a1bc664d46e4ccd2ba83e6ff0f66ce6c4cb154eb8
|
|
| MD5 |
ce020dde4bb51589a0dd495883843e5b
|
|
| BLAKE2b-256 |
4f7bb58949aed135fd3698bca4f47da920d3574358fd19335cb0bf494687c577
|
File details
Details for the file cv_net_library-0.0.3-py3-none-any.whl.
File metadata
- Download URL: cv_net_library-0.0.3-py3-none-any.whl
- Upload date:
- Size: 18.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9b872a981d46f3cbf36c010670b7677ecfa5e811a24d082902471ca3a91c48b
|
|
| MD5 |
a545436ad3d332971d5d201d87d28b13
|
|
| BLAKE2b-256 |
650cc6a4606be5a2e2020e1860dfed7a39719c744c050371fd934792c38c88db
|