Computations and statistics on manifolds with geometric structures.

Overview

Geomstats

Code PyPI version Downloads Zenodo
Continuous Integration Build Status python
Code coverage (numpy) Coverage Status np
Code coverage (autograd, tensorflow, pytorch) Coverage Status autogradCoverage Status tfCoverage Status torch
Documentation doc binder tutorial
Community contributions Slack Twitter

NEWS:

Geomstats is an open-source Python package for computations and statistics on manifolds. The package is organized into two main modules: geometry and learning.

The module geometry implements concepts in differential geometry, and the module learning implements statistics and learning algorithms for data on manifolds.

If you find geomstats useful, please kindly cite our paper:

@article{JMLR:v21:19-027,
  author  = {Nina Miolane and Nicolas Guigui and Alice Le Brigant and Johan Mathe and Benjamin Hou and Yann Thanwerdas and Stefan Heyder and Olivier Peltre and Niklas Koep and Hadi Zaatiti and Hatem Hajri and Yann Cabanes and Thomas Gerald and Paul Chauchat and Christian Shewmake and Daniel Brooks and Bernhard Kainz and Claire Donnat and Susan Holmes and Xavier Pennec},
  title   = {Geomstats:  A Python Package for Riemannian Geometry in Machine Learning},
  journal = {Journal of Machine Learning Research},
  year    = {2020},
  volume  = {21},
  number  = {223},
  pages   = {1-9},
  url     = {http://jmlr.org/papers/v21/19-027.html}
}

Install geomstats via pip3

From a terminal (OS X & Linux), you can install geomstats and its requirements with pip3 as follows:

pip3 install geomstats

This method installs the latest version of geomstats that is uploaded on PyPi. Note that geomstats is only available with Python3.

Install geomstats via Git

From a terminal (OS X & Linux), you can install geomstats and its requirements via git as follows:

git clone https://github.com/geomstats/geomstats.git
pip3 install -r requirements.txt

This method installs the latest GitHub version of geomstats.

To add the requirements.txt into a conda environment, you can use the enviroment.yml file as follows:

conda env create --file environment.yml

Note that this only installs the minimum requirements. To add the optional, development, continuous integration and documentation requirements, refer to the files *-requirements.txt.

Install geomstats : Developers

Developers should git clone the master branch of this repository, together with the development requirements and the optional requirements to enable tensorflow and pytorch backends:

pip3 install -r dev-requirements.txt -r opt-requirements.txt

Additionally, we recommend installing our pre-commit hook, to ensure that your code follows our Python style guidelines:

pre-commit install

Choose the backend

Geomstats can run seamlessly with numpy, tensorflow or pytorch. Note that pytorch and tensorflow requirements are optional, as geomstats can be used with numpy only. By default, the numpy backend is used. The visualizations are only available with this backend.

To get the tensorflow and pytorch versions compatible with geomstats, install the optional requirements:

pip3 install -r opt-requirements.txt

You can choose your backend by setting the environment variable GEOMSTATS_BACKEND to numpy, tensorflow or pytorch, and importing the backend module. From the command line:

export GEOMSTATS_BACKEND=pytorch

and in the Python3 code:

import geomstats.backend as gs

Getting started

To use geomstats for learning algorithms on Riemannian manifolds, you need to follow three steps: - instantiate the manifold of interest, - instantiate the learning algorithm of interest, - run the algorithm.

The data should be represented by a gs.array. This structure represents numpy arrays, or tensorflow/pytorch tensors, depending on the choice of backend.

The following code snippet shows the use of tangent Principal Component Analysis on simulated data on the space of 3D rotations.

from geomstats.geometry.special_orthogonal import SpecialOrthogonal
from geomstats.learning.pca import TangentPCA

so3 = SpecialOrthogonal(n=3, point_type="vector")
metric = so3.bi_invariant_metric

data = so3.random_uniform(n_samples=10)

tpca = TangentPCA(metric=metric, n_components=2)
tpca = tpca.fit(data)
tangent_projected_data = tpca.transform(data)

All geometric computations are performed behind the scenes. The user only needs a high-level understanding of Riemannian geometry. Each algorithm can be used with any of the manifolds and metric implemented in the package.

To see additional examples, go to the examples or notebooks directories.

Contributing

See our contributing guidelines!

Acknowledgements

This work is supported by:

  • the Inria-Stanford associated team GeomStats,
  • the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation program (grant agreement G-Statistics No. 786854),
  • the French society for applied and industrial mathematics (SMAI),
  • the National Science Foundation (grant NSF DMS RTG 1501767).
Comments
  • Make submersion and tangent_submersion abstract in LevelSet

    Make submersion and tangent_submersion abstract in LevelSet

    Partially answers #1680 for LevelSet.

    Missing:

    • docstrings

    Need to discuss:

    • should value somehow also be forced to be defined or passing as argument to parent works fine? (I think it should be OK as argument)
    • is the API naming OK? e.g. point and vector, point, respectively?

    @ninamiolane @ymontmarin

    opened by luisfpereira 27
  • Sasaki metric

    Sasaki metric

    Checklist

    • [x] My pull request has a clear and explanatory title.
    • [x] If neccessary, my code is vectorized.
    • [x] I have added apropriate unit tests.
    • [x] I have made sure the code passes all unit tests. (refer to comment below)
    • [x] My PR follows PEP8 guidelines. (refer to comment below)
    • [x] My PR follows geomstats coding style and API.
    • [x] My code is properly documented ~~and I made sure the documentation renders properly.~~ (Link) (Code is documented, but I cannot get sphinx-build docs/ docs/html running, as it fails immediately.)

    Description

    A natural choice of metric on the tangent bundle of a Riemannian manifold is the Sasaki metric and this PR implements it.

    Additional context

    This implementation was originally part of the submission 'Sasaki Metric and Applications in Geodesic Analysis' to the ICLR Computational Geometry & Topology Challenge 2022.

    opened by ambellan 22
  • Doc overview

    Doc overview

    Opening this PR to provide the package with an 'overview.md' file, following the discussion we had with Nina on classes and inheritance friday afternoon! (read here)

    This may or may not be the right place to put it... Most of it could for instance be moved to the geomstats/geometry/README.md and referenced from the index readme, should also be configured available to the website... I'm sure @cshewmake2 will have some ideas about this :)

    I think it would be good for us to have some kind of common reference, for us to work on, available somewhere as soon as possible!

    In the meantime we can discuss here :)

    PS: I also have a Mat(n,p) PR ready to open but I have to go! I'll submit those stepwise, i.e. 'merge-matrices', 'merge-general-linear', 'merge-special-orthogonal' branches ...

    opened by opeltre 18
  • Function spaces implementation : starting with infinite dimensional spheres

    Function spaces implementation : starting with infinite dimensional spheres

    Hello, This is a follow-up for #1194 (apologies for the extreme delay on this) This PR:

    • Introduces function spaces module with the implementation of infinite-dimensional spheres with L2 metrics that are mentioned in Chapter 4.3.2 in the book Functional and Shape Data Analysis.
    • This class will later be used to aid the implementation of general probability measures under the Fisher-Rao metric and SRSF for functions to be added later.
    opened by kiranvad 17
  • Geodesic regression

    Geodesic regression

    Hi Geomstats dev team --

    I'm interested in performing geodesic regression on the Grassmann manifold (see this paper by Thomas Fletcher). I have dependent variables Y sampled from this manifold, where each sample Y_i is in ( R^{n x k} ). For each Y_i, I also have a vector of scalar-valued independent variables, X_i, (like age, sex, other demographic information).

    I'm hoping to use Geomstats to fit the regression of Y ~ X but am unsure of how to go about doing this. It seems that the ML tutorials assume the manifold-valued data will be used as the independent, rather than dependent, variable.

    Any help is much appreciated.

    opened by kristianeschenburg 16
  • Simple new pullbackdiffeo

    Simple new pullbackdiffeo

    Checklist

    • [x] My pull request has a clear and explanatory title.
    • [x] If neccessary, my code is vectorized.
    • [x] I have added apropriate unit tests.
    • [x] I have made sure the code passes all unit tests. (refer to comment below)
    • [x] My PR follows PEP8 guidelines. (refer to comment below)
    • [x] My PR follows geomstats coding style and API.
    • [x] My code is properly documented and I made sure the documentation renders properly. (Link)
    • [x] I have linked to issues and PRs that are relevant to this PR.

    Description

    Issue

    Additional context

    opened by ymontmarin 15
  • Debugging SO(3) in vector form for all backends

    Debugging SO(3) in vector form for all backends

    A number of definitions and changes in functions to make Pytorch and Tensorflow cope with SO(3) in vector form.

    • Another way of computing the rotation vector from a rotation matrix, based on the axis-angle representation for the case theta ~ pi (https://en.wikipedia.org/wiki/Axis%E2%80%93angle_representation#Log_map_from_SO(3)to%7F'%22%60UNIQ--postMath-0000000D-QINU%60%22'%7F(3)). The other one made Tensorflow and Pytorch output wrong results (and I did not have the courage to dig into it). Many tests are now successful with Pytorch and Tensorflow, to the price of raising the threshold a bit. The limit cases are indeed troubling for them, might come from the fact that many computations are done in float32. In particular, it fails some tests that numpy passes (e.g. gs.allclose(base_point, self.group.identity)), which induces more computations and increases numerical errors.

    • set_diag and get_slice were defined to mimic numpy's behavior (and, of course, because of Tensorflow).

    opened by pchauchat 15
  • Create DiscretizedCurvesSpace

    Create DiscretizedCurvesSpace

    I have implemented two different metrics for curves:

    • the L2 metric
    • the Square Root Velocity (SRV) metric (see e.g. https://ieeexplore.ieee.org/abstract/document/5601739)

    The SRV framework is implemented only for curves in a Euclidean space for starters (I have to figure out how to test the fact that the base manifold is Euclidean), because the formulas are considerably simpler in that setting.

    I needed the inner_product_matrix method of Hypersphere so I added it.

    opened by alebrigant 15
  • Reserve `scale` parameter to ScalarProductMetric

    Reserve `scale` parameter to ScalarProductMetric

    Closes #1757 and closes #1758 by removing the scale parameter from various manifolds.

    These are the Hyperbolic, HPDMatrices and PoincarePolydisk manifolds, along with all their related classes.

    @YannCabanes The tests are failing on PoincarePolydisk and I don't understand the objects well enough to remedy the issue. Maybe you could have a look?

    opened by johnharveymath 13
  • Support product manifolds of matrices

    Support product manifolds of matrices

    This PR is related to the PR #1727 adding a product manifold ProductHPDMatricesAndSiegelDisks which is a product manifold of matrices. To add this manifold, we have to modify the way that ProductManifold handles the points shape. This PR is inspired by a discussion with @lpereira95 and @johnharveymath in PR #1727.

    opened by YannCabanes 13
  • Curvature implementation

    Curvature implementation

    Implementation of methods for metric and connection, so that riemannian metrics can return :

    • riemannian tensor
    • curvature
    • ricci tensor
    • scalar curvature
    • sectional curvature (was already implemented if curvature was)

    Tests on shapes of curvature tensors symmetries of riemannian tensor on test files (geometry_test_cases and data_generation), and on negativity of sectional curvature of dirichlet distributions (on another script file, I did not know if I should add it in the test file).

    opened by Jules-Deschamps 13
  • Refactor Product and NFold

    Refactor Product and NFold

    Description

    This PR is a straightforward refactoring. It places all code for products together in product_manifold.py and all code for n-fold manifolds together in nfold_manifold.py.

    Issue

    ProductManifold and NFoldManifold were in one module, while ProductRiemannianMetric and NFoldMetric were in another. This separation of the manifold from the metric is not in line with practice across the code base.

    On the other hand, mixing product classes and n-fold classes together in modules does not seem to have any benefits.

    opened by johnharveymath 2
  • Add product positive reals and complex poincare disks

    Add product positive reals and complex poincare disks

    Add the ProductPositiveRealsAndComplexPoincareDisks manifold.

    The ProductPositiveRealsAndComplexPoincareDisks manifold is defined as a product manifold of the positive reals manifold and (n-1) complex Poincaré disks. The positive reals and complex Poincaré disks product has a product metric. The product metric on the positive reals and complex Poincaré disks product space is the positive reals metric and (n - 1) complex Poincaré metrics multiplied by constants. This product manifold can be used to represent Toeplitz HPD matrices. The ProductPositiveRealsAndComplexPoincareDisks corresponds to the one-dimensional case of ProductHPDMatricesAndSiegelDisks. Indeed, PositiveReals is the one-dimensional case of HPDMatrices and ComplexPoincareDisk is the one-dimensional case of Siegel. In these one-dimensional manifolds, many simplifications occur compared with the multidimensional manifolds since matrices commute in dimension 1.

    References

    .. [Cabanes_2022] Yann Cabanes. Multidimensional complex stationary centered Gaussian autoregressive time series machine learning in Poincaré and Siegel disks: application for audio and radar clutter classification, PhD thesis, tel-03708515, 2022. https://theses.hal.science/tel-03708515 .. [Cabanes_CESAR_2019] Yann Cabanes, Frédéric Barbaresco, Marc Arnaudon et Jérémie Bigot. Unsupervised Machine Learning for Pathological Radar Clutter Clustering: the P-Mean-Shift Algorithm, IEEE, C&ESAR 2019, Rennes, France, 2019. https://hal.archives-ouvertes.fr/hal-02875430 .. [Cabanes_RADAR_2019] Yann Cabanes, Frédéric Barbaresco, Marc Arnaudon et Jérémie Bigot. Non-Supervised High Resolution Doppler Machine Learning for Pathological Radar Clutter, IEEE, RADAR 2019, Toulon, France, 2019. https://hal.archives-ouvertes.fr/hal-02875415 .. [Cabanes_GSI_2019] Yann Cabanes, Frédéric Barbaresco, Marc Arnaudon et Jérémie Bigot. Toeplitz Hermitian Positive Definite Matrix Machine Learning based on Fisher Metric, IEEE, GSI 2019, Toulouse, France, 2019. https://hal.archives-ouvertes.fr/hal-02875403 .. [Le_Brigant_2017] Alice Le Brigant. Probability on the spaces of curves and the associated metric spaces using information geometry; radar applications, PhD thesis, tel-01635258, 2017. https://theses.hal.science/tel-01635258 .. [Jeuris_2016] B. Jeuris and R. Vandebril. The Kahler mean of Block-Toeplitz matrices with Toeplitz structured blocks, 2016. https://epubs.siam.org/doi/pdf/10.1137/15M102112X .. [Yang_2013] Marc Arnaudon, Frédéric Barbaresco and Le Yang. Riemannian Medians and Means With Applications to Radar Signal Processing, IEEE, 2013.

    opened by YannCabanes 10
  • Add method to change the lists in `scalar_product_metric.py`

    Add method to change the lists in `scalar_product_metric.py`

    Follows #1740.

    Scaling factor for wrapping of methods of underlying_metric in ScalarProducMetric is given by verifying if method name belongs to SQRT_LIST, LINEAR_LIST, QUADRATIC_LIST, INVERSE_LIST, INVERSE_QUADRATIC_LIST, and mapping it with the right value.

    Currently, there's no proper way of updating these lists. Something like this works, but looks more like hacking than programming:

    
    from geomstats.geometry import scalar_product_metric
    
    scalar_product_metric.SQRT_LIST.append("my_new_method")
    

    A better solution may be something like (with better naming):

    from geomstats.geometry.scalar_product_metric import add_scaled_method
    
    add_scaled_method("my_new_method", scaling_type="sqrt")
    

    This is relevant e.g. for "power" users that need to implement a new metric with a method whose output needs to be scaled.

    (With @johnharveymath.)

    enhancement 
    opened by luisfpereira 0
  • Add functions and associated tests for Binomial and Exponential Distributions

    Add functions and associated tests for Binomial and Exponential Distributions

    Checklist

    • [x] My pull request has a clear and explanatory title.
    • [x] If neccessary, my code is vectorized.
    • [x] I have added apropriate unit tests.
    • [ ] I have made sure the code passes all unit tests. (refer to comment below)
    • [x] My PR follows PEP8 guidelines. (refer to comment below)
    • [x] My PR follows geomstats coding style and API.
    • [x] My code is properly documented and I made sure the documentation renders properly. (Link)
    • [x] I have linked to issues and PRs that are relevant to this PR.

    Description

    Add metric_matrix and geodesic for Binomial and Exponential Distributions as well as associated tests. Code requires #1753 resolved to work properly with pytorch.

    Issue

    Additional context

    opened by tramy1258 12
  • Refactor `InformationManifoldMixins` for consistency with children and `FisherRaoMetric`

    Refactor `InformationManifoldMixins` for consistency with children and `FisherRaoMetric`

    This refactoring should address several points:

    1 InformationManifoldMixins contains methods that are not defined by any children and should probably be removed: point_to_cdf and cdf.

    2 In children, the structure point_to_pdf and pdf as different methods is not followed. This needs to be homogenized. I suggest to keep the children way, i.e. pdf defined within point_to_pdf.

    I've suggested in #1612 to follow the current approach in InformationManifoldMixins, but looking to cases such as CenteredNormalDistributions we can see it is worthy sometimes to do some operations only once (i.e. do not repeat them for each call of pdf(x), which is only possible following the approach currently implemented in children.

    3 pmf should be called pdf to allow it to be used with FisherRaoMetric and to have the same API for all distributions.

    bug refactoring information geometry 
    opened by luisfpereira 0
Releases(2.5.0)
  • v2.4.1(Jan 28, 2022)

    What's Changed

    • Stable by @ninamiolane in https://github.com/geomstats/geomstats/pull/1177
    • Add the dataset of cells to the nb 01 data on manifolds by @ninamiolane in https://github.com/geomstats/geomstats/pull/1178
    • Modify shape analysis notebook by @alebrigant in https://github.com/geomstats/geomstats/pull/1180
    • make codecov sensible again by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1181
    • Un-stall PR on General Elastic Metric by @ninamiolane in https://github.com/geomstats/geomstats/pull/1182
    • full rank matrices by @annacalissano in https://github.com/geomstats/geomstats/pull/1186
    • Improve MDM by @qbarthelemy in https://github.com/geomstats/geomstats/pull/1188
    • Improve MDM, 2 by @qbarthelemy in https://github.com/geomstats/geomstats/pull/1189
    • Add predict_proba to MDM by @qbarthelemy in https://github.com/geomstats/geomstats/pull/1193
    • Add exp and log maps for SPD Euclidean by @qbarthelemy in https://github.com/geomstats/geomstats/pull/1192
    • Patching Backend Operations by @captain-pool in https://github.com/geomstats/geomstats/pull/1190
    • reformat code snippets for highlighting in documentation by @nguigs in https://github.com/geomstats/geomstats/pull/1196
    • add extrinsic to spherical and its tangent by @nguigs in https://github.com/geomstats/geomstats/pull/1195
    • Fix typo by @heytitle in https://github.com/geomstats/geomstats/pull/1199
    • updating symeig with eigh by @captain-pool in https://github.com/geomstats/geomstats/pull/1201
    • Committing new files for the psd matrices of rank k by @annacalissano in https://github.com/geomstats/geomstats/pull/1191
    • Fix issue #1083 by @alebrigant in https://github.com/geomstats/geomstats/pull/1209
    • Cleaning hyperbolic doc and vectorisation by @tgeral68 in https://github.com/geomstats/geomstats/pull/1211
    • Add list of hackathons to the README by @ninamiolane in https://github.com/geomstats/geomstats/pull/1214
    • rename EmbeddedManifold into LevelSet by @nguigs in https://github.com/geomstats/geomstats/pull/1219
    • Add visualization of SPD(2) matrices through Ellipsis. by @ninamiolane in https://github.com/geomstats/geomstats/pull/1210
    • Rm deprecated code in lie_groups.py about loss and grad by @ninamiolane in https://github.com/geomstats/geomstats/pull/1215
    • Temporarily remove tests with python 3.7 3.8 for the hackathon (only 3.9 is tested) by @ninamiolane in https://github.com/geomstats/geomstats/pull/1221
    • add circle with representation by one angle by @nguigs in https://github.com/geomstats/geomstats/pull/1212
    • pytest migration - 1 by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1205
    • Example of geodesic regression on the Grassmann manifold by @nguigs in https://github.com/geomstats/geomstats/pull/1220
    • FIX: Change docstring for the manifold PSD(n, k) by @ninamiolane in https://github.com/geomstats/geomstats/pull/1230
    • Add documentation in autodiff modules by @ninamiolane in https://github.com/geomstats/geomstats/pull/1226
    • faster spd checking by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1143
    • Add triu and test by @mortenapedersen in https://github.com/geomstats/geomstats/pull/1232
    • Add API for symplectic and leapfrog steps in integrators by @ninamiolane in https://github.com/geomstats/geomstats/pull/1233
    • Template for lddmm metric on landmarks by @nguigs in https://github.com/geomstats/geomstats/pull/883
    • Try running tests on Heisenberg by @ninamiolane in https://github.com/geomstats/geomstats/pull/1238
    • Add 3D heisenberg group in vector representation and unit tests by @mortenapedersen in https://github.com/geomstats/geomstats/pull/1213
    • Try PR on subRiemannian geometry by @ninamiolane in https://github.com/geomstats/geomstats/pull/1239
    • Add sub-Riemannian metric class by @mortenapedersen in https://github.com/geomstats/geomstats/pull/1237
    • Add a subcase to torch solve_sylvester by @emaignant in https://github.com/geomstats/geomstats/pull/1223
    • Add hamiltonian, cometric and inner-coproduct by @ninamiolane in https://github.com/geomstats/geomstats/pull/1240
    • Remove outdated loss and grad functions in riemannian metric by @ninamiolane in https://github.com/geomstats/geomstats/pull/1241
    • Xpennec stiefel tests by @xpennec in https://github.com/geomstats/geomstats/pull/1236
    • Allow to pass initial point to FrechetMean estimator by @nguigs in https://github.com/geomstats/geomstats/pull/1234
    • add subcase to tensorflow + add test by @nguigs in https://github.com/geomstats/geomstats/pull/1242
    • Graphspace by @annacalissano in https://github.com/geomstats/geomstats/pull/1244
    • Cholesky space by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1142
    • Clean style of sub-Riemannian metrics by @ninamiolane in https://github.com/geomstats/geomstats/pull/1250
    • Adapt DeepSource config by @ninamiolane in https://github.com/geomstats/geomstats/pull/1255
    • fix docs by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1258
    • Fix docs by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1259
    • update documentation key by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1260
    • Refactor/clean module of discrete curves by @alebrigant in https://github.com/geomstats/geomstats/pull/1248
    • clean test_symmetric_matrices by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1261
    • Update contributing: nose -> pytest by @ninamiolane in https://github.com/geomstats/geomstats/pull/1262
    • Acknowledge recent contributors by @ninamiolane in https://github.com/geomstats/geomstats/pull/1265
    • Add lead author(s) to each module by @ninamiolane in https://github.com/geomstats/geomstats/pull/1266
    • cleaning github actions by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1252
    • check by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1268
    • Rename lr to init_step_size everywhere by @nguigs in https://github.com/geomstats/geomstats/pull/1274
    • Introduce n-fold manifolds by @nguigs in https://github.com/geomstats/geomstats/pull/1249
    • build docs through commands not through action by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1275
    • rewrite by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1276
    • conditional deployement by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1277
    • Fix docs GitHub actions 3 by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1278
    • Add notebook with cancer cell shapes analysis by @ninamiolane in https://github.com/geomstats/geomstats/pull/1280
    • Add hacks to help FrechetMean computations + Display quantiles to the mean shape by @ninamiolane in https://github.com/geomstats/geomstats/pull/1284
    • NEW: doc strings generator and checker by @ninamiolane in https://github.com/geomstats/geomstats/pull/1290
    • Test if rotation matrices are antipodals before trying to compute the Log by @ninamiolane in https://github.com/geomstats/geomstats/pull/1229
    • Add missing nb-thumbnails tags to render tutorials on doc website by @ninamiolane in https://github.com/geomstats/geomstats/pull/1291
    • add missing notebook by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1293
    • clean test_spd_matrices with parametrization by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1263
    • Hotfix: Make tests pass again w. py38 and skipping failing tests by @ninamiolane in https://github.com/geomstats/geomstats/pull/1296
    • Fix Build->Test Badge on README.rst by @ninamiolane in https://github.com/geomstats/geomstats/pull/1297
    • check for repo name by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1300
    • Hotfix: Bring back linting on tests/ folder + fix some code style issues by @ninamiolane in https://github.com/geomstats/geomstats/pull/1299
    • Add more conditions to docs.yml by @SaitejaUtpala in https://github.com/geomstats/geomstats/pull/1301
    • Geomstats v 2.4.1 by @ninamiolane in https://github.com/geomstats/geomstats/pull/1305
    • Merge master (v2.4.1) into stable by @ninamiolane in https://github.com/geomstats/geomstats/pull/1306

    New Contributors

    • @annacalissano made their first contribution in https://github.com/geomstats/geomstats/pull/1186
    • @qbarthelemy made their first contribution in https://github.com/geomstats/geomstats/pull/1188
    • @captain-pool made their first contribution in https://github.com/geomstats/geomstats/pull/1190
    • @heytitle made their first contribution in https://github.com/geomstats/geomstats/pull/1199
    • @mortenapedersen made their first contribution in https://github.com/geomstats/geomstats/pull/1232

    Full Changelog: https://github.com/geomstats/geomstats/compare/2.3.1...v2.4.1

    Source code(tar.gz)
    Source code(zip)
  • v1.6(Apr 27, 2018)

Pytorch and Keras Implementations of Hyperspectral Image Classification -- Traditional to Deep Models: A Survey for Future Prospects.

The repository contains the implementations for Hyperspectral Image Classification -- Traditional to Deep Models: A Survey for Future Prospects. Model

Ankur Deria 115 Jan 06, 2023
Source code of our work: "Benchmarking Deep Models for Salient Object Detection"

SALOD Source code of our work: "Benchmarking Deep Models for Salient Object Detection". In this works, we propose a new benchmark for SALient Object D

22 Dec 30, 2022
Code for T-Few from "Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning"

T-Few This repository contains the official code for the paper: "Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learni

220 Dec 31, 2022
Deep generative modeling for time-stamped heterogeneous data, enabling high-fidelity models for a large variety of spatio-temporal domains.

Neural Spatio-Temporal Point Processes [arxiv] Ricky T. Q. Chen, Brandon Amos, Maximilian Nickel Abstract. We propose a new class of parameterizations

Facebook Research 75 Dec 19, 2022
A playable implementation of Fully Convolutional Networks with Keras.

keras-fcn A re-implementation of Fully Convolutional Networks with Keras Installation Dependencies keras tensorflow Install with pip $ pip install git

JihongJu 202 Sep 07, 2022
A tensorflow/keras implementation of StyleGAN to generate images of new Pokemon.

PokeGAN A tensorflow/keras implementation of StyleGAN to generate images of new Pokemon. Dataset The model has been trained on dataset that includes 8

19 Jul 26, 2022
TensorFlow Implementation of Unsupervised Cross-Domain Image Generation

Domain Transfer Network (DTN) TensorFlow implementation of Unsupervised Cross-Domain Image Generation. Requirements Python 2.7 TensorFlow 0.12 Pickle

Yunjey Choi 865 Nov 17, 2022
Deep learning model for EEG artifact removal

DeepSeparator Introduction Electroencephalogram (EEG) recordings are often contaminated with artifacts. Various methods have been developed to elimina

23 Dec 21, 2022
Machine-in-the-Loop Rewriting for Creative Image Captioning

Machine-in-the-Loop Rewriting for Creative Image Captioning Data Annotated sources of data used in the paper: Data Source URL Mohammed et al. Link Gor

Vishakh P 6 Jul 24, 2022
Irrigation controller for Home Assistant

Irrigation Unlimited This integration is for irrigation systems large and small. It can offer some complex arrangements without large and messy script

Robert Cook 176 Jan 02, 2023
A simple approach to emable dense segmentation with ViT.

Vision Transformer Segmentation Network This implementation of ViT in pytorch uses a super simple and straight-forward way of generating an output of

HReynaud 5 Jan 03, 2023
Experiments for Operating Systems Lab (ETCS-352)

Operating Systems Lab (ETCS-352) Experiments for Operating Systems Lab (ETCS-352) performed by me in 2021 at uni. All codes are written by me except t

Deekshant Wadhwa 0 Sep 06, 2022
constructing maps of intellectual influence from publication data

Influencemap Project @ ANU Influence in the academic communities has been an area of interest for researchers. This can be seen in the popularity of a

CS Metrics 13 Jun 18, 2022
AFL binary instrumentation

E9AFL --- Binary AFL E9AFL inserts American Fuzzy Lop (AFL) instrumentation into x86_64 Linux binaries. This allows binaries to be fuzzed without the

242 Dec 12, 2022
Mixup for Supervision, Semi- and Self-Supervision Learning Toolbox and Benchmark

OpenSelfSup News Downstream tasks now support more methods(Mask RCNN-FPN, RetinaNet, Keypoints RCNN) and more datasets(Cityscapes). 'GaussianBlur' is

AI Lab, Westlake University 332 Jan 03, 2023
Some methods for comparing network representations in deep learning and neuroscience.

Generalized Shape Metrics on Neural Representations In neuroscience and in deep learning, quantifying the (dis)similarity of neural representations ac

Alex Williams 45 Dec 27, 2022
Install alphafold on the local machine, get out of docker.

AlphaFold This package provides an implementation of the inference pipeline of AlphaFold v2.0. This is a completely new model that was entered in CASP

Kui Xu 73 Dec 13, 2022
Rohit Ingole 2 Mar 24, 2022
MIM: MIM Installs OpenMMLab Packages

MIM provides a unified API for launching and installing OpenMMLab projects and their extensions, and managing the OpenMMLab model zoo.

OpenMMLab 254 Jan 04, 2023
COVID-Net Open Source Initiative

The COVID-Net models provided here are intended to be used as reference models that can be built upon and enhanced as new data becomes available

Linda Wang 1.1k Dec 26, 2022