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
PyTorch implementation of the ExORL: Exploratory Data for Offline Reinforcement Learning

ExORL: Exploratory Data for Offline Reinforcement Learning This is an original PyTorch implementation of the ExORL framework from Don't Change the Alg

Denis Yarats 52 Jan 01, 2023
DeepLab is a state-of-art deep learning system for semantic image segmentation built on top of Caffe.

DeepLab Introduction DeepLab is a state-of-art deep learning system for semantic image segmentation built on top of Caffe. It combines densely-compute

Ali 234 Nov 14, 2022
This project deploys a yolo fastest model in the form of tflite on raspberry 3b+. The model is from another repository of mine called -Trash-Classification-Car

Deploy-yolo-fastest-tflite-on-raspberry 觉得有用的话可以顺手点个star嗷 这个项目将垃圾分类小车中的tflite模型移植到了树莓派3b+上面。 该项目主要是为了记录在树莓派部署yolo fastest tflite的流程 (之后有时间会尝试用C++部署来提升

7 Aug 16, 2022
Robot Servers and Server Manager software for robo-gym

robo-gym-server-modules Robot Servers and Server Manager software for robo-gym. For info on how to use this package please visit the robo-gym website

JR ROBOTICS 4 Aug 16, 2021
OpenMMLab Computer Vision Foundation

English | 简体中文 Introduction MMCV is a foundational library for computer vision research and supports many research projects as below: MMCV: OpenMMLab

OpenMMLab 4.6k Jan 09, 2023
The Rich Get Richer: Disparate Impact of Semi-Supervised Learning

The Rich Get Richer: Disparate Impact of Semi-Supervised Learning Preprocess file of the dataset used in implicit sub-populations: (Demographic groups

<a href=[email protected]"> 4 Oct 14, 2022
Benchmarks for Model-Based Optimization

Design-Bench Design-Bench is a benchmarking framework for solving automatic design problems that involve choosing an input that maximizes a black-box

Brandon Trabucco 43 Dec 20, 2022
TorchMultimodal is a PyTorch library for training state-of-the-art multimodal multi-task models at scale.

TorchMultimodal (Alpha Release) Introduction TorchMultimodal is a PyTorch library for training state-of-the-art multimodal multi-task models at scale.

Meta Research 663 Jan 06, 2023
Riemannian Convex Potential Maps

Modeling distributions on Riemannian manifolds is a crucial component in understanding non-Euclidean data that arises, e.g., in physics and geology. The budding approaches in this space are limited b

Facebook Research 61 Nov 28, 2022
Global-Local Path Networks for Monocular Depth Estimation with Vertical CutDepth [Paper]

Global-Local Path Networks for Monocular Depth Estimation with Vertical CutDepth [Paper] Downloads [Downloads] Trained ckpt files for NYU Depth V2 and

98 Jan 01, 2023
Code and Experiments for ACL-IJCNLP 2021 Paper Mind Your Outliers! Investigating the Negative Impact of Outliers on Active Learning for Visual Question Answering.

Code and Experiments for ACL-IJCNLP 2021 Paper Mind Your Outliers! Investigating the Negative Impact of Outliers on Active Learning for Visual Question Answering.

Sidd Karamcheti 50 Nov 16, 2022
Code and datasets for the paper "KnowPrompt: Knowledge-aware Prompt-tuning with Synergistic Optimization for Relation Extraction"

KnowPrompt Code and datasets for our paper "KnowPrompt: Knowledge-aware Prompt-tuning with Synergistic Optimization for Relation Extraction" Requireme

ZJUNLP 137 Dec 31, 2022
The official PyTorch implementation of recent paper - SAINT: Improved Neural Networks for Tabular Data via Row Attention and Contrastive Pre-Training

This repository is the official PyTorch implementation of SAINT. Find the paper on arxiv SAINT: Improved Neural Networks for Tabular Data via Row Atte

Gowthami Somepalli 284 Dec 21, 2022
ReferFormer - Official Implementation of ReferFormer

The official implementation of the paper: Language as Queries for Referring Video Object Segmentation Language as Queries for Referring Video Object S

Jonas Wu 232 Dec 29, 2022
Generative Query Network (GQN) in PyTorch as described in "Neural Scene Representation and Rendering"

Update 2019/06/24: A model trained on 10% of the Shepard-Metzler dataset has been added, the following notebook explains the main features of this mod

Jesper Wohlert 313 Dec 27, 2022
In this project, we'll be making our own screen recorder in Python using some libraries.

Screen Recorder in Python Project Description: In this project, we'll be making our own screen recorder in Python using some libraries. Requirements:

Hassan Shahzad 4 Jan 24, 2022
Official implementation of CATs: Cost Aggregation Transformers for Visual Correspondence NeurIPS'21

CATs: Cost Aggregation Transformers for Visual Correspondence NeurIPS'21 For more information, check out the paper on [arXiv]. Training with different

Sunghwan Hong 120 Jan 04, 2023
PyTorch implementation of the YOLO (You Only Look Once) v2

PyTorch implementation of the YOLO (You Only Look Once) v2 The YOLOv2 is one of the most popular one-stage object detector. This project adopts PyTorc

申瑞珉 (Ruimin Shen) 433 Nov 24, 2022
Hunt down social media accounts by username across social networks

Hunt down social media accounts by username across social networks Installation | Usage | Docker Notes | Contributing Installation # clone the repo $

1 Dec 14, 2021
Implementation of Shape Generation and Completion Through Point-Voxel Diffusion

Shape Generation and Completion Through Point-Voxel Diffusion Project | Paper Implementation of Shape Generation and Completion Through Point-Voxel Di

Linqi Zhou 103 Dec 29, 2022