A Python Package For System Identification Using NARMAX Models

Overview

DOI PyPI version License openissues issuesclosed downloads python status discord contributors forks stars

SysIdentPy is a Python module for System Identification using NARMAX models built on top of numpy and is distributed under the 3-Clause BSD license.

Note

The update v0.1.7 has been released with major changes and additional features (Fourier basis function, NAR and NFIR models, possibility to select the lag of the residues for Extended Least Squares algorithm and many more).

There are several API modifications and you will need to change your code to have the new (and upcoming) features.

Check the examples of how to use the new version in the documentation page.

For more details, please see the changelog.

Documentation

Examples

SysIdentPy now support NARX Neural Network and General estimators, e.g., sklearn estimators and Catboost.

Exemples

from torch import nn
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sysidentpy.metrics import mean_squared_error
from sysidentpy.utils.generate_data import get_siso_data


# Generate a dataset of a simulated dynamical system
x_train, x_valid, y_train, y_valid = get_siso_data(n=1000,
                                                   colored_noise=False,
                                                   sigma=0.001,
                                                   train_percentage=80)

Building Polynomial NARX models with FROLS algorithm

from sysidentpy.model_structure_selection import FROLS
from sysidentpy.basis_function import Polynomial
from sysidentpy.utils.display_results import results
from sysidentpy.utils.plotting import plot_residues_correlation, plot_results
from sysidentpy.residues.residues_correlation import compute_residues_autocorrelation
from sysidentpy.residues.residues_correlation import compute_cross_correlation

basis_function=Polynomial(degree=2)
model = PolynomialNarmax(
  order_selection=True,
  n_info_values=10,
  extended_least_squares=False,
  ylag=2, xlag=2,
  info_criteria='aic',
  estimator='least_squares',
  basis_function=basis_function
)
model.fit(X=x_train, y=y_train)
yhat = model.predict(X=x_valid, y=y_valid)
print(rrse)
r = pd.DataFrame(
	results(
		model.final_model, model.theta, model.err,
		model.n_terms, err_precision=8, dtype='sci'
		),
	columns=['Regressors', 'Parameters', 'ERR'])
print(r)
	
Regressors     Parameters        ERR
0        x1(k-2)     0.9000  0.95556574
1         y(k-1)     0.1999  0.04107943
2  x1(k-1)y(k-1)     0.1000  0.00335113

plot_results(y=y_valid, yhat=yhat, n=1000)
ee = compute_residues_autocorrelation(y_valid, yhat)
plot_residues_correlation(data=ee, title="Residues", ylabel="$e^2$")
x1e = compute_cross_correlation(y_valid, yhat, x2_val)
plot_residues_correlation(data=x1e, title="Residues", ylabel="$x_1e$")

polynomial

NARX Neural Network

from sysidentpy.neural_network import NARXNN

class NARX(nn.Module):
    def __init__(self):
        super().__init__()
        self.lin = nn.Linear(4, 10)
        self.lin2 = nn.Linear(10, 10)
        self.lin3 = nn.Linear(10, 1)
        self.tanh = nn.Tanh()

    def forward(self, xb):
        z = self.lin(xb)
        z = self.tanh(z)
        z = self.lin2(z)
        z = self.tanh(z)
        z = self.lin3(z)
        return z

narx_net = NARXNN(net=NARX(),
                  ylag=2,
                  xlag=2,
                  loss_func='mse_loss',
                  optimizer='Adam',
                  epochs=200,
                  verbose=False,
                  optim_params={'betas': (0.9, 0.999), 'eps': 1e-05} # optional parameters of the optimizer
)

train_dl = narx_net.data_transform(x_train, y_train)
valid_dl = narx_net.data_transform(x_valid, y_valid)
narx_net.fit(train_dl, valid_dl)
yhat = narx_net.predict(x_valid, y_valid)
ee, ex, extras, lam = narx_net.residuals(x_valid, y_valid, yhat)
narx_net.plot_result(y_valid, yhat, ee, ex)

neural

Catboost-narx

from sysidentpy.general_estimators import NARX
from catboost import CatBoostRegressor

catboost_narx = NARX(base_estimator=CatBoostRegressor(iterations=300,
                                                      learning_rate=0.1,
                                                      depth=6),
                     xlag=2,
                     ylag=2,
                     fit_params={'verbose': False}
)

catboost_narx.fit(x_train, y_train)
yhat = catboost_narx.predict(x_valid, y_valid)
ee, ex, extras, lam = catboost_narx.residuals(x_valid, y_valid, yhat)
catboost_narx.plot_result(y_valid, yhat, ee, ex)

catboost

Catboost without NARX configuration

The following is the Catboost performance without the NARX configuration.

def plot_results(yvalid, yhat):
    _, ax = plt.subplots(figsize=(14, 8))
    ax.plot(y_valid[:200], label='Data', marker='o')
    ax.plot(yhat[:200], label='Prediction', marker='*')
    ax.set_xlabel("$n$", fontsize=18)
    ax.set_ylabel("$y[n]$", fontsize=18)
    ax.grid()
    ax.legend(fontsize=18)
    plt.show()

catboost = CatBoostRegressor(iterations=300,
                            learning_rate=0.1,
                            depth=6)
catboost.fit(x_train, y_train, verbose=False)
plot_results(y_valid, catboost.predict(x_valid))

catboost

The examples directory has several Jupyter notebooks presenting basic tutorials of how to use the package and some specific applications of sysidentpy. Try it out!

Requirements

SysIdentPy requires:

  • Python (>= 3.6)
  • NumPy (>= 1.5.0) for all numerical algorithms
  • Matplotlib >= 1.5.2 for static plotting and visualizations
  • Pytorch (>=1.7.1) for building feed-forward neural networks
Platform Status
Linux ok
Windows ok
macOS ok

SysIdentPy do not to support Python 2.7.

A few examples require pandas >= 0.18.0. However, it is not required to use sysidentpy.

Installation

The easiest way to get sysidentpy running is to install it using pip

pip install sysidentpy

We will make it available at conda repository as soon as possible.

Changelog

See the changelog for a history of notable changes to SysIdentPy.

Development

We welcome new contributors of all experience levels. The sysidentpy community goals are to be helpful, welcoming, and effective.

Note: we use the pytest package for testing. The test functions are located in tests subdirectories at each folder inside SysIdentPy, which check the validity of the algorithms.

Run the pytest in the respective folder to perform all the tests of the corresponding sub-packages.

Currently, we have around 81% of code coverage.

You can install pytest using

pip install -U pytest

Example of how to run the tests:

Open a terminal emulator of your choice and go to a subdirectory, e.g,

\sysidentpy\metrics\

Just type pytest and you get a result like

========== test session starts ==========

platform linux -- Python 3.7.6, pytest-5.4.2, py-1.8.1, pluggy-0.13.1

rootdir: ~/sysidentpy

plugins: cov-2.8.1

collected 12 items

tests/test_regression.py ............ [100%]

========== 12 passed in 2.45s ==================

You can also see the code coverage using the pytest-cov package. First, install pytest-cov using

pip install pytest-cov

Run the command below in the SysIdentPy root directory, to generate the report.

pytest --cov=.

Important links

Source code

You can check the latest sources with the command::

git clone https://github.com/wilsonrljr/sysidentpy.git

Project History

The project was started by Wilson R. L. Junior, Luan Pascoal and Samir A. M. Martins as a project for System Identification discipline. Samuel joined early in 2019.

The project is actively maintained by Wilson R. L. Junior and looking for contributors.

Communication

Citation

DOI

If you use SysIdentPy on your project, please drop me a line.

If you use SysIdentPy on your scientific publication, we would appreciate citations to the following paper:

  • Lacerda et al., (2020). SysIdentPy: A Python package for System Identification using NARMAX models. Journal of Open Source Software, 5(54), 2384, https://doi.org/10.21105/joss.02384
@article{Lacerda2020,
  doi = {10.21105/joss.02384},
  url = {https://doi.org/10.21105/joss.02384},
  year = {2020},
  publisher = {The Open Journal},
  volume = {5},
  number = {54},
  pages = {2384},
  author = {Wilson Rocha Lacerda Junior and Luan Pascoal Costa da Andrade and Samuel Carlos Pessoa Oliveira and Samir Angelo Milani Martins},
  title = {SysIdentPy: A Python package for System Identification using NARMAX models},
  journal = {Journal of Open Source Software}
}

Inspiration

The documentation and structure (even this section) is openly inspired by sklearn, einsteinpy, and many others as we used (and keep using) them to learn.

Comments
  • Installation Mac M1 chip

    Installation Mac M1 chip

    Greeting, Thank you for this amazing package. I have a Mac 2022 with M1 chip and I failed to install the SysIdentPy. Do you know how to circumvent the problem? Thanks!

    opened by AntoineDubois 5
  • I am unable to resolve  ModuleNotFoundError: No module named 'sysidentpy.model_structure_selection'

    I am unable to resolve ModuleNotFoundError: No module named 'sysidentpy.model_structure_selection'

    Bug: ModuleNotFoundError: No module named 'sysidentpy.model_structure_selection'

    Steps/code to reproduce: from sysidentpy.model_structure_selection import FROLS

    Environment: Version of the packages you are using Defaulting to user installation because normal site-packages is not writeable Requirement already satisfied: sysidentpy in ./.local/lib/python3.6/site-packages (0.1.4.2) Requirement already satisfied: torch>=1.7.1 in ./.local/lib/python3.6/site-packages (from sysidentpy) (1.10.0+cu113) Requirement already satisfied: numpy>=1.17.3 in ./.local/lib/python3.6/site-packages (from sysidentpy) (1.19.5) Requirement already satisfied: matplotlib>=3.1.0 in ./.local/lib/python3.6/site-packages (from sysidentpy) (3.3.4) Requirement already satisfied: python-dateutil>=2.1 in ./.local/lib/python3.6/site-packages (from matplotlib>=3.1.0->sysidentpy) (2.8.1) Requirement already satisfied: kiwisolver>=1.0.1 in ./.local/lib/python3.6/site-packages (from matplotlib>=3.1.0->sysidentpy) (1.3.1) Requirement already satisfied: cycler>=0.10 in ./.local/lib/python3.6/site-packages (from matplotlib>=3.1.0->sysidentpy) (0.10.0) Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.3 in ./.local/lib/python3.6/site-packages (from matplotlib>=3.1.0->sysidentpy) (2.4.7) Requirement already satisfied: pillow>=6.2.0 in ./.local/lib/python3.6/site-packages (from matplotlib>=3.1.0->sysidentpy) (8.4.0) Requirement already satisfied: dataclasses in ./.local/lib/python3.6/site-packages (from torch>=1.7.1->sysidentpy) (0.8) Requirement already satisfied: typing-extensions in ./.local/lib/python3.6/site-packages (from torch>=1.7.1->sysidentpy) (3.7.4.3) Requirement already satisfied: six in ./.local/lib/python3.6/site-packages (from cycler>=0.10->matplotlib>=3.1.0->sysidentpy) (1.15.0)

    opened by TeaCult 4
  • Cannot install the package

    Cannot install the package

    Hello. I am not able to install the package right now.

    Steps/code to reproduce: On the terminal, I am running

    pip install sysidentpy
    

    and I get

    Collecting sysidentpy
      Using cached https://files.pythonhosted.org/packages/b3/9b/20dde4808c7f81badaecd84f112edd161f989b94f1dc84401acda6c49ae2/sysidentpy-0.1.1.tar.gz
        ERROR: Command errored out with exit status 1:
         command: 'c:\users\neylson - a3data\testepython\novoenv\scripts\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Neylson - A3Data\\AppData\\Local\\Temp\\pip-install-donew4o8\\sysidentpy\\setup.py'"'"'; __file__='"'"'C:\\Users\\Neylson - A3Data\\AppData\\Local\\Temp\\pip-install-donew4o8\\sysidentpy\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
             cwd: C:\Users\Neylson - A3Data\AppData\Local\Temp\pip-install-donew4o8\sysidentpy\
        Complete output (1 lines):
        numpy is required during installation
        ----------------------------------------
    ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
    

    I am using Python 3.8 in a Windows 10 OS.

    opened by neylsoncrepalde 4
  • It fails for

    It fails for "numpy is required during installation" when we trying to install sysidentpy from requirements.txt.

    Describe the bug It fails for "numpy is required during installation" when we trying to install sysidentpy from requirements.txt.

    To Reproduce

    1. Create a requirements.txt with the below 3 packages: numpy matplotlib sysidentpy
    2. run pip install command pip install -r requirements.txt
    3. Issue appears: image

    Expected results The sysidentpy get installed with all its dependencies.

    Actual results sysidentpy failed to install for error message "numpy is required during installation".

    Environment sysidentpy-0.1.5.3

    Additional context Even if we put the numpy before sysidentpy in requirements.txt does not help. I think this issue is because all the packages are only downloaded in the first pass and then installed all together at the end.

    Workaround We currently have a workaround to pip install all the dependency packages separately before we install for the requirements.txt. But this requires us to do these in a Linux VM as our target server is Linux OS while we are developing in Windows. So it would be great if we could have an actual solution for this issue. Thanks in advance!

    opened by Yangsh-w 3
  • Forecasting with unseen inputs and forecast model generation

    Forecasting with unseen inputs and forecast model generation

    The predict function input arguments are X_valid and y_valid. How can I forecast with my trained model if I don't have output (y_valid) yet?

    Using the simulation function, can it be used for forecasting by directly referencing the trained model regressors?

    The package worked perfectly for my data, and I would like to use it for real-time workflow. This involves training validation-forecasting-updating of the model in real-time.

    As new data is streamed, can I initialize with the previous model and re-regress to update the model's parameters? Thank you very much

    opened by rabiu42000 3
  • Problem using MISO

    Problem using MISO

    Applying the example of article "SysIdentPy: A Python package for System Identificationusing NARMAX models" gives an error. Typing : model = PolynomialNarmax(non_degree=2,order_selection=True,ylag=2, xlag=[[1, 2], [1, 2]],info_criteria='aic', estimator='least_squares',) Gives : -

    TypeError Traceback (most recent call last)

    in () ----> 1 model = PolynomialNarmax(non_degree=2,order_selection=True,ylag=2, xlag=[[1, 2], [1, 2]],info_criteria='aic', estimator='least_squares',)

    2 frames

    /content/gdrive/My Drive/python/03_WP/sysidentpy/base.py in (.0) 116 # create only the lags passed from list 117 x_vec_tmp = [] --> 118 x_vec_tmp.extend([lag + 1000*np.ones(np.size(lag)) for lag in xlag]) 119 x_vec_tmp = np.array(x_vec_tmp) 120 elif isinstance(xlag, int) and n_inputs == 1:

    TypeError: can only concatenate list (not "int") to list

    opened by micheloz 3
  • Example does not run

    Example does not run

    O exemplo extended_least_squares.ipynb falha com esse erro:

    0.5839138626779056
          Regressors Parameters         ERR
    0        x1(k-2)     0.8886  0.74898574
    1         y(k-1)     0.2710  0.06875041
    2  x1(k-1)y(k-1)     0.0924  0.00403020
    3         y(k-2)    -0.0411  0.00143946
    4      x1(k-1)^2    -0.0575  0.00103367
    5   y(k-2)y(k-1)     0.0619  0.00133295
    6  x1(k-1)y(k-2)     0.0477  0.00065670
    ---------------------------------------------------------------------------
    ValueError                                Traceback (most recent call last)
    ~/Downloads/sysidentpy/examples/extended_least_squares.ipynb in <module>
         10
         11     model.fit(x_train, y_train)
    ---> 12     parameters[:, i] = list(model.theta)
         13
         14 sns.set()
    
    ValueError: cannot copy sequence with size 7 to array axis with dimension 3
    

    Todos os outros funcionam. Acho que podem adicionar "macOS OK" na lista.

    opened by acristoffers 2
  • Neural NARX - Predicting without labels (forecasting)

    Neural NARX - Predicting without labels (forecasting)

    Is your feature request related to a problem? Please describe. Enhancement of the predict method for Neural NARX in order to access forecasting scenarios where you don't have the labels (y).

    Describe the solution you'd like Be able to use only the 'X_test' as input for the 'predict' method, adding a parameter like 'forecast_horizon' to express the number of steps to predict WITHOUT the actual labels. This is the scenario of a forecasting prediction.

    opened by marcostx 1
  • Exception: Insufficient initial conditions elements!

    Exception: Insufficient initial conditions elements!

    I get this exception when i use model.fit(x_train, y_train, x_valid, y_valid) for MetaMSS same with FROLS. What causes this kind of exception? \sysidentpy\polynomial_basis\narmax.py", line 559, in _model_prediction raise Exception("Insufficient initial conditions elements!")

    opened by rabiu42000 1
  • Too much black text

    Too much black text

    There's too much black (bold) text on

    https://wilsonrljr.github.io/sysidentpy/user_guide.html

    Presumably a problem with the Markdown where a **...** wasn't closed.

    opened by dpsanders 1
  • V0.2.1

    V0.2.1

    v0.2.1

    CONTRIBUTORS

    • wilsonrljr

    CHANGES

    • The update v0.2.1 has been released with additional feature, minor API changes and fixes.

    • MAJOR: Neural NARX now support CUDA

      • Now the user can build Neural NARX models with CUDA support. Just add device='cuda' to use the GPU benefits.
      • Updated docs to show how to use the new feature.
    • MAJOR: New documentation website

      • The documentation is now entirely based on Markdown (no rst anymore).
      • We use MkDocs and Material for MkDocs theme now.
      • Dark theme option.
      • The Contribute page have more details to help those who wants to contribute with SysIdentPy.
      • New sections (e.g., Blog, Sponsors, etc.)
      • Many improvements under the hood.
    • MAJOR: Github Sponsor

      • Now you can support SysIdentPy by becoming a Sponsor! Details: https://github.com/sponsors/wilsonrljr
    • Tests:

      • Now there are test for almost every function.
      • Neural NARX tests are raising numpy issues. It'll be fixed til next update.
    • FIX: NFIR models in General Estimators

      • Fix support for NFIR models using sklearn estimators.
    • The setup is now handled by the pyproject.toml file.

    • Remove unused code.

    • Fix docstring variables.

    • Fix code format issues.

    • Fix minor grammatical and spelling mistakes.

    • Fix issues related to html on Jupyter notebooks examples on documentation.

    • Updated Readme.

    opened by wilsonrljr 0
  • steps_ahead not simulating next steps in SimulateNARMAX

    steps_ahead not simulating next steps in SimulateNARMAX

    https://github.com/wilsonrljr/sysidentpy/blob/440bd926892b506506eaa37d3864cfed99e6a2b1/sysidentpy/simulation/_simulation.py#L333

    bug When trying to simulate duffing equation

    x_1 = 1.0 x_2
    x_2 = -0.15 x_1 + 2.75 x_2 - 1.0 x_2^3
    

    by giving steps_ahead = 2 or more, it is still predicting the one step forward for all the given test values. And it cannot simulate with out the steps_ahead parameter and also when steps_ahead = 50 or more. Please see the respective screenshots of the simulations.

    ident_model = np.array([
          [1001, 1001, 1001],
          [1001,    0,    0],
          [2001,    0,    0],
           ])
    
    
    s = SimulateNARMAX(basis_function=Polynomial(degree=3), calculate_err=True, estimate_parameter=True, extended_least_squares=True)
    yhat_simulate = s.simulate(
        X_train=x_train,
        y_train=y_train,
        X_test=x_test,
        y_test=y_test,
        model_code=ident_model,
        steps_ahead=2)
    

    without steps_ahead wostepahead steps_ahead = 1 wstepahead1 steps_ahead = 2 wstepahead2nmor steps_ahead = 50 wstepahead50 steps_ahead = 100 wstepahead100

    Thank you very much for this very insightful and helpful project.

    opened by Lalith-Sagar-Devagudi 1
  • Fix Typo in code example

    Fix Typo in code example

    Example code in Basic Usage/Build a Polynomial NARX model has a typo in compute_cross_correlation that gives an error when executed since variable used does not exist

    opened by Gabo-Tor 0
  • The maximum lag of the fitted model is the maximum lag between ylag and xlag

    The maximum lag of the fitted model is the maximum lag between ylag and xlag

    The maximum lag of the fitted model should be updated based on the final_model code. If the user saves the model and just want to predict, the initial conditions must have max(xlag, ylag) even if the final model have a lower final lag.

    Ex.:

    
    model = PolynomialNarmax(
            ylag=10,
            xlag=10
    )
    
    fitted_model = [
        [1001,    0], # y(k-1)
        [2001, 1001], # x1(k-1)y(k-1)
        [2002,    0], # x1(k-2)
        ]
    
    

    The maximum lag in the version v0.1.6 will be 10. However, setting the maximum lag equal 2 is more intuitive because the user do not have to worry about it.

    opened by wilsonrljr 0
  • Support for training from multiple datasets

    Support for training from multiple datasets

    as far as I can tell, the model.fit(X,y) function can only support a single training dataset. I would like to train a model based on multiple recorded datasets (say, 5 recordings, each 10 minutes long, but not captured consecutively, so concatenation is not correct). is this possible? is this planned for a future release? see for example: https://www.mathworks.com/help/ident/ug/dealing-with-multi-experiment-data-and-merging-models.html

    Enhancement 
    opened by jtylka 2
  • spatio-temporal identification

    spatio-temporal identification

    Is your feature request related to a problem? Please describe. identification of PDEs

    Describe the solution you'd like spatio-temporal model creation and parameter estimation based only on data

    Describe alternatives you've considered the ERR can be used for the purpose too

    Additional context any plans on developing this feature? :)

    Enhancement 
    opened by helonayala 1
Releases(v0.2.1)
  • v0.2.1(Aug 30, 2022)

    We're happy to announce the v0.2.1 release with new methods and bug fixes:

    You can see the changelog here: http://sysidentpy.org/changelog/changelog/

    You can upgrade with pip as usual:

    pip install sysidentpy --upgrade
    
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Jun 18, 2022)

    We're happy to announce the v0.2.0 release with new methods and bug fixes:

    You can see the changelog here: http://sysidentpy.org/changelog/v0.2.0.html

    You can upgrade with pip as usual:

    pip install sysidentpy --upgrade
    
    Source code(tar.gz)
    Source code(zip)
  • v0.1.9(Mar 5, 2022)

    We're happy to announce the 0.1.9 release with new methods and bugfixes:

    You can see the changelog here: http://sysidentpy.org/changelog/v0.1.9.html

    You can upgrade with pip as usual:

    pip install sysidentpy --upgrade
    
    Source code(tar.gz)
    Source code(zip)
  • v0.1.7(Oct 18, 2021)

    We're happy to announce the 0.1.7 release with new methods and bugfixes:

    You can see the changelog here: http://sysidentpy.org/changelog/v0.1.7.html

    You can upgrade with pip as usual:

    pip install sysidentpy --upgrade
    
    Source code(tar.gz)
    Source code(zip)
  • v0.1.6(Sep 25, 2021)

    We're happy to announce the v0.1.6 release with new methods and bugfixes:

    You can see the changelog here: http://sysidentpy.org/changelog/v0.1.6.html

    You can upgrade with pip as usual:

    pip install sysidentpy --upgrade
    
    Source code(tar.gz)
    Source code(zip)
  • v0.1.5(Mar 14, 2021)

    We're happy to announce the 0.1.5 release with bugfixes and new code optimizations:

    You can see the changelog here: http://sysidentpy.org/changelog/v0.1.5.html

    You can upgrade with pip as usual:

    pip install sysidentpy --upgrade

    Source code(tar.gz)
    Source code(zip)
  • v0.1.3(Dec 6, 2020)

    We're happy to announce the 0.1.3 release with bugfixes and new code optimizations:

    You can see the changelog here: http://sysidentpy.org/changelog/v0.1.3.html

    You can upgrade with pip as usual:

    pip install sysidentpy --upgrade
    
    Source code(tar.gz)
    Source code(zip)
  • v0.1.2(Sep 12, 2020)

Owner
Wilson Rocha
Master in Electrical Engineering. Data Scientist. Professor. Member of Control and Modelling Group (GCOM)
Wilson Rocha
CS550 Machine Learning course project on CNN Detection.

CNN Detection (CS550 Machine Learning Project) Team Members (Tensor) : Yadava Kishore Chodipilli (11940310) Thashmitha BS (11941250) This is a work do

yaadava_kishore 2 Jan 30, 2022
(under submission) Bayesian Integration of a Generative Prior for Image Restoration

BIGPrior: Towards Decoupling Learned Prior Hallucination and Data Fidelity in Image Restoration Authors: Majed El Helou, and Sabine Süsstrunk {Note: p

Majed El Helou 22 Dec 17, 2022
Constructing interpretable quadratic accuracy predictors to serve as an objective function for an IQCQP problem that represents NAS under latency constraints and solve it with efficient algorithms.

IQNAS: Interpretable Integer Quadratic programming Neural Architecture Search Realistic use of neural networks often requires adhering to multiple con

0 Oct 24, 2021
Spectralformer: Rethinking hyperspectral image classification with transformers

The code in this toolbox implements the "Spectralformer: Rethinking hyperspectral image classification with transformers". More specifically, it is detailed as follow.

Danfeng Hong 104 Jan 04, 2023
Lorien: A Unified Infrastructure for Efficient Deep Learning Workloads Delivery

Lorien: A Unified Infrastructure for Efficient Deep Learning Workloads Delivery Lorien is an infrastructure to massively explore/benchmark the best sc

Amazon Web Services - Labs 45 Dec 12, 2022
This is an open solution to the Home Credit Default Risk challenge 🏡

Home Credit Default Risk: Open Solution This is an open solution to the Home Credit Default Risk challenge 🏡 . More competitions 🎇 Check collection

minerva.ml 427 Dec 27, 2022
Multi-Content GAN for Few-Shot Font Style Transfer at CVPR 2018

MC-GAN in PyTorch This is the implementation of the Multi-Content GAN for Few-Shot Font Style Transfer. The code was written by Samaneh Azadi. If you

Samaneh Azadi 422 Dec 04, 2022
PyTorch implementation of spectral graph ConvNets, NIPS’16

Graph ConvNets in PyTorch October 15, 2017 Xavier Bresson http://www.ntu.edu.sg/home/xbresson https://github.com/xbresson https://twitter.com/xbresson

Xavier Bresson 287 Jan 04, 2023
Dense Prediction Transformers

Vision Transformers for Dense Prediction This repository contains code and models for our paper: Vision Transformers for Dense Prediction René Ranftl,

Intelligent Systems Lab Org 1.3k Jan 02, 2023
All materials of Cassandra Event, Udyam'22

Cassandra 2022 Workspace Workshop Materials Workshop-1 Workshop-2 Workshop-3 Workshop-4 Assignments Assignment-1 Assignment-2 Assignment-3 Resources P

36 Dec 31, 2022
This project aims to explore the deployment of Swin-Transformer based on TensorRT, including the test results of FP16 and INT8.

Swin Transformer This project aims to explore the deployment of SwinTransformer based on TensorRT, including the test results of FP16 and INT8. Introd

maggiez 87 Dec 21, 2022
A Transformer-Based Feature Segmentation and Region Alignment Method For UAV-View Geo-Localization

University1652-Baseline [Paper] [Slide] [Explore Drone-view Data] [Explore Satellite-view Data] [Explore Street-view Data] [Video Sample] [中文介绍] This

Zhedong Zheng 335 Jan 06, 2023
Curved Projection Reformation

Description Assuming that we already know the image of the centerline, we want the lumen to be displayed on a plane, which requires curved projection

夜听残荷 5 Sep 11, 2022
Simple tutorials on Pytorch DDP training

pytorch-distributed-training Distribute Dataparallel (DDP) Training on Pytorch Features Easy to study DDP training You can directly copy this code for

Ren Tianhe 188 Jan 06, 2023
Implementation for the paper 'YOLO-ReT: Towards High Accuracy Real-time Object Detection on Edge GPUs'

YOLO-ReT This is the original implementation of the paper: YOLO-ReT: Towards High Accuracy Real-time Object Detection on Edge GPUs. Prakhar Ganesh, Ya

69 Oct 19, 2022
Riemannian Geometry for Molecular Surface Approximation (RGMolSA)

Riemannian Geometry for Molecular Surface Approximation (RGMolSA) Introduction Ligand-based virtual screening aims to reduce the cost and duration of

11 Nov 15, 2022
PyTorch implementations of neural network models for keyword spotting

Honk: CNNs for Keyword Spotting Honk is a PyTorch reimplementation of Google's TensorFlow convolutional neural networks for keyword spotting, which ac

Castorini 475 Dec 15, 2022
Iranian Cars Detection using Yolov5s, PyTorch

Iranian Cars Detection using Yolov5 Train 1- git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt 2- Dataset ../

Nahid Ebrahimian 22 Dec 05, 2022
Easy way to add GoogleMaps to Flask applications. maintainer: @getcake

Flask Google Maps Easy to use Google Maps in your Flask application requires Jinja Flask A google api key get here Contribute To contribute with the p

Flask Extensions 611 Dec 05, 2022
Pytorch Lightning Implementation of SC-Depth Methods.

SC_Depth_pl: This is a pytorch lightning implementation of SC-Depth (V1, V2) for self-supervised learning of monocular depth from video. In the V1 (IJ

JiaWang Bian 216 Dec 30, 2022