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)

NeRF Meta-Learning with PyTorch

NeRF Meta Learning With PyTorch nerf-meta is a PyTorch re-implementation of NeRF experiments from the paper "Learned Initializations for Optimizing Co

Sanowar Raihan 78 Dec 18, 2022
Pytorch implementation for the paper: Contrastive Learning for Cold-start Recommendation

Contrastive Learning for Cold-start Recommendation This is our Pytorch implementation for the paper: Yinwei Wei, Xiang Wang, Qi Li, Liqiang Nie, Yan L

45 Dec 13, 2022
Seeing if I can put together an interactive version of 3b1b's Manim in Streamlit

streamlit-manim Seeing if I can put together an interactive version of 3b1b's Manim in Streamlit Installation I had to install pango with sudo apt-get

Adrien Treuille 6 Aug 03, 2022
Code for "Learning to Regrasp by Learning to Place"

Learning2Regrasp Learning to Regrasp by Learning to Place, CoRL 2021. Introduction We propose a point-cloud-based system for robots to predict a seque

Shuo Cheng (成硕) 18 Aug 27, 2022
Code for Referring Image Segmentation via Cross-Modal Progressive Comprehension, CVPR2020.

CMPC-Refseg Code of our CVPR 2020 paper Referring Image Segmentation via Cross-Modal Progressive Comprehension. Shaofei Huang*, Tianrui Hui*, Si Liu,

spyflying 55 Dec 01, 2022
Official implementation of AAAI-21 paper "Label Confusion Learning to Enhance Text Classification Models"

Description: This is the official implementation of our AAAI-21 accepted paper Label Confusion Learning to Enhance Text Classification Models. The str

101 Nov 25, 2022
DeepOBS: A Deep Learning Optimizer Benchmark Suite

DeepOBS - A Deep Learning Optimizer Benchmark Suite DeepOBS is a benchmarking suite that drastically simplifies, automates and improves the evaluation

Aaron Bahde 7 May 12, 2020
Code for Contrastive-Geometry Networks for Generalized 3D Pose Transfer

Code for Contrastive-Geometry Networks for Generalized 3D Pose Transfer

18 Jun 28, 2022
The ARCA23K baseline system

ARCA23K Baseline System This is the source code for the baseline system associated with the ARCA23K dataset. Details about ARCA23K and the baseline sy

4 Jul 02, 2022
Uni-Fold: Training your own deep protein-folding models.

Uni-Fold: Training your own deep protein-folding models. This package provides and implementation of a trainable, Transformer-based deep protein foldi

DeepModeling 88 Jan 03, 2023
Code for "Multi-Time Attention Networks for Irregularly Sampled Time Series", ICLR 2021.

Multi-Time Attention Networks (mTANs) This repository contains the PyTorch implementation for the paper Multi-Time Attention Networks for Irregularly

The Laboratory for Robust and Efficient Machine Learning 68 Dec 17, 2022
Unified Pre-training for Self-Supervised Learning and Supervised Learning for ASR

UniSpeech The family of UniSpeech: UniSpeech (ICML 2021): Unified Pre-training for Self-Supervised Learning and Supervised Learning for ASR UniSpeech-

Microsoft 282 Jan 09, 2023
Pytorch implementation for A-NeRF: Articulated Neural Radiance Fields for Learning Human Shape, Appearance, and Pose

A-NeRF: Articulated Neural Radiance Fields for Learning Human Shape, Appearance, and Pose Paper | Website | Data A-NeRF: Articulated Neural Radiance F

Shih-Yang Su 172 Dec 22, 2022
ERISHA is a mulitilingual multispeaker expressive speech synthesis framework. It can transfer the expressivity to the speaker's voice for which no expressive speech corpus is available.

ERISHA: Multilingual Multispeaker Expressive Text-to-Speech Library ERISHA is a multilingual multispeaker expressive speech synthesis framework. It ca

Ajinkya Kulkarni 43 Nov 27, 2022
Learned image compression

Overview Pytorch code of our recent work A Unified End-to-End Framework for Efficient Deep Image Compression. We first release the code for Variationa

Jiaheng Liu 163 Dec 04, 2022
AugLiChem - The augmentation library for chemical systems.

AugLiChem Welcome to AugLiChem! The augmentation library for chemical systems. This package supports augmentation for both crystaline and molecular sy

BaratiLab 17 Jan 08, 2023
Randstad Artificial Intelligence Challenge (powered by VGEN). Soluzione proposta da Stefano Fiorucci (anakin87) - primo classificato

Randstad Artificial Intelligence Challenge (powered by VGEN) Soluzione proposta da Stefano Fiorucci (anakin87) - primo classificato Struttura director

Stefano Fiorucci 1 Nov 13, 2021
Implementation of "A MLP-like Architecture for Dense Prediction"

A MLP-like Architecture for Dense Prediction (arXiv) Updates (22/07/2021) Initial release. Model Zoo We provide CycleMLP models pretrained on ImageNet

Shoufa Chen 244 Dec 27, 2022
Source code for Acorn, the precision farming rover by Twisted Fields

Acorn precision farming rover This is the software repository for Acorn, the precision farming rover by Twisted Fields. For more information see twist

Twisted Fields 198 Jan 02, 2023
Face Library is an open source package for accurate and real-time face detection and recognition

Face Library Face Library is an open source package for accurate and real-time face detection and recognition. The package is built over OpenCV and us

52 Nov 09, 2022