JuliaAI / ScientificTypes.jl

An API for dispatching on the "scientific" type of data instead of the machine type
MIT License
96 stars 8 forks source link

Add implementation of `scitype` for "points on a manifold" #128

Open ablaom opened 3 years ago

ablaom commented 3 years ago

The tentative suggestion is that scitype((p, M)) = ManifoldPoint{typeof(M)} whenever M isa Manifolds.Manifold.

Context:https://github.com/JuliaManifolds/ManifoldML.jl/issues/3 Requires: https://github.com/alan-turing-institute/ScientificTypes.jl/issues/114

ablaom commented 3 years ago

Specifically:

ST.scitype(::Tuple{Any,MT}) where MT<:ManifoldsBase.Manifold = ManifoldPoint{MT}

This is implemented on the manifolds branch. Look at these tests to get an idea of behaviour.

ablaom commented 3 years ago

@mateuszbaran @kellertuer I propose you add MLJScientificTypes to your dev project and pin to the manifolds branch until we're sure this is the best approach. Yes?

kellertuer commented 3 years ago

I think that looks good and should work.

ablaom commented 3 years ago

@mateuszbaran @kellertuer

Been a while. Here's an update from our end: The manifold branch referred to above is now part of an archived repo - a casualty of the renaming MLJScientificTypes -> ScientificTypes and ScientificTypes -> ScientificTypesBase. For the record the relevant commit is here:

https://github.com/JuliaAI/MLJScientificTypes.jl/commit/4411140412c5a227ee59f433ddcd8b86604fc6aa

And ManifoldPoint{MT} is already in ScientificTypesBase.

I can create a new PR if there is still interest to do some integration. What is the status of this at your end?

kellertuer commented 3 years ago

We would still be interested of course – I just got carried away from the ManifoldsML package due to a few features on Manifolds and moving to a new university/country.

mateuszbaran commented 3 years ago

Thanks for an update! I'm still interested in developing ManifoldsML further, it just happened that I don't currently need to apply traditional machine learning to manifold-valued data. I'm currently working towards continuous normalizing flows on manifolds because it's more relevant to one of the projects I'm currently working on.