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
Differentiable architecture search for convolutional and recurrent networks

Differentiable Architecture Search Code accompanying the paper DARTS: Differentiable Architecture Search Hanxiao Liu, Karen Simonyan, Yiming Yang. arX

Hanxiao Liu 3.7k Jan 09, 2023
Probabilistic Entity Representation Model for Reasoning over Knowledge Graphs

Implementation for the paper: Probabilistic Entity Representation Model for Reasoning over Knowledge Graphs, Nurendra Choudhary, Nikhil Rao, Sumeet Ka

Nurendra Choudhary 8 Nov 15, 2022
Playable Video Generation

Playable Video Generation Playable Video Generation Willi Menapace, Stéphane Lathuilière, Sergey Tulyakov, Aliaksandr Siarohin, Elisa Ricci Paper: ArX

Willi Menapace 136 Dec 31, 2022
Theory-inspired Parameter Control Benchmarks for Dynamic Algorithm Configuration

This repo is for the paper: Theory-inspired Parameter Control Benchmarks for Dynamic Algorithm Configuration The DAC environment is based on the Dynam

Carola Doerr 1 Aug 19, 2022
Face and Pose detector that emits MQTT events when a face or human body is detected and not detected.

Face Detect MQTT Face or Pose detector that emits MQTT events when a face or human body is detected and not detected. I built this as an alternative t

Jacob Morris 38 Oct 21, 2022
EMNLP 2021 paper Models and Datasets for Cross-Lingual Summarisation.

This repository contains data and code for our EMNLP 2021 paper Models and Datasets for Cross-Lingual Summarisation. Please contact me at

9 Oct 28, 2022
TensorFlow Metal Backend on Apple Silicon Experiments (just for fun)

tf-metal-experiments TensorFlow Metal Backend on Apple Silicon Experiments (just for fun) Setup This is tested on M1 series Apple Silicon SOC only. Te

Timothy Liu 161 Jan 03, 2023
This repository provides an unified frameworks to train and test the state-of-the-art few-shot font generation (FFG) models.

FFG-benchmarks This repository provides an unified frameworks to train and test the state-of-the-art few-shot font generation (FFG) models. What is Fe

Clova AI Research 101 Dec 27, 2022
PyTorch implementation for our NeurIPS 2021 Spotlight paper "Long Short-Term Transformer for Online Action Detection".

Long Short-Term Transformer for Online Action Detection Introduction This is a PyTorch implementation for our NeurIPS 2021 Spotlight paper "Long Short

77 Dec 16, 2022
This project uses Template Matching technique for object detecting by detection of template image over base image.

Object Detection Project Using OpenCV This project uses Template Matching technique for object detecting by detection the template image over base ima

Pratham Bhatnagar 7 May 29, 2022
Optimising chemical reactions using machine learning

Summit Summit is a set of tools for optimising chemical processes. We’ve started by targeting reactions. What is Summit? Currently, reaction optimisat

Sustainable Reaction Engineering Group 75 Dec 14, 2022
Grad2Task: Improved Few-shot Text Classification Using Gradients for Task Representation

Grad2Task: Improved Few-shot Text Classification Using Gradients for Task Representation Prerequisites This repo is built upon a local copy of transfo

Jixuan Wang 10 Sep 28, 2022
Offline Reinforcement Learning with Implicit Q-Learning

Offline Reinforcement Learning with Implicit Q-Learning This repository contains the official implementation of Offline Reinforcement Learning with Im

Ilya Kostrikov 126 Jan 06, 2023
Codes for NeurIPS 2021 paper "Adversarial Neuron Pruning Purifies Backdoored Deep Models"

Adversarial Neuron Pruning Purifies Backdoored Deep Models Code for NeurIPS 2021 "Adversarial Neuron Pruning Purifies Backdoored Deep Models" by Dongx

Dongxian Wu 31 Dec 11, 2022
Coded illumination for improved lensless imaging

CodedCam Coded Illumination for Improved Lensless Imaging Paper | Supplementary results | Data and Code are available. Coded illumination for improved

Computational Sensing and Information Processing Lab 1 Nov 29, 2021
Visual Question Answering in Pytorch

Visual Question Answering in pytorch /!\ New version of pytorch for VQA available here: https://github.com/Cadene/block.bootstrap.pytorch This repo wa

Remi 672 Jan 01, 2023
Recursive Bayesian Networks

Recursive Bayesian Networks This repository contains the code to reproduce the results from the NeurIPS 2021 paper Lieck R, Rohrmeier M (2021) Recursi

Robert Lieck 11 Oct 18, 2022
HyperCube: Implicit Field Representations of Voxelized 3D Models

HyperCube: Implicit Field Representations of Voxelized 3D Models Authors: Magdalena Proszewska, Marcin Mazur, Tomasz Trzcinski, Przemysław Spurek [Pap

Magdalena Proszewska 3 Mar 09, 2022
Exe-to-xlsm - Simple script to create VBscript of exe and inject to xlsm

🎁 Exe To Office Executable file injection to Office documents: .xlsm, .docm, .p

3 Jan 25, 2022
The code for our paper CrossFormer: A Versatile Vision Transformer Based on Cross-scale Attention.

CrossFormer This repository is the code for our paper CrossFormer: A Versatile Vision Transformer Based on Cross-scale Attention. Introduction Existin

cheerss 238 Jan 06, 2023