ChanServ changed the topic of #mlpack to: "mlpack: a fast, flexible machine learning library :: We don't always respond instantly, but we will respond; please be patient :: Logs at http://www.mlpack.org/irc/
< AyushSingh[m]>
Regarding GSOC ideas 2021, would there be some project in NLP as well?
< ShahAnwaarKhalid>
How do I convert a matrix of type Mat<double> to Mat<unsigned char> for data::SaveImage() function?
< ShahAnwaarKhalid>
I tried Armadillo's .conv_to() function but it gives an error saying " given object doesn't have exactly one element
< ShahAnwaarKhalid>
terminate called after throwing an instance of 'std::logic_error"
Artea has joined #mlpack
< AvikantSrivasta4>
What all previous work done for running MLpack on resources constraint devices or RPi?
< say4n>
Avikant Srivastava you can check out Omar's (shrit on GitHub) work on it. :)
< AvikantSrivasta4>
Alright
< NippunSharmaGitt>
Hi, will there be a project related to the revamping of bindings (#2421) for GSoC 2021 ?
< rcurtin[m]>
Nippun Sharma (Gitter): there could be a binding-related project; not sure yet, it depends on a lot of things (including mentor interest, etc.). personally, I think #2421 could be a good project
< rcurtin[m]>
there is also something else that hasn't been written anywhere yet... the bindings are not threadsafe. specifically, the `IO` object is a global singleton, and as a result it's not possible in some languages to run multiple bindings simultaneously. we found this at my company when attempting to use the Julia bindings in parallel
< rcurtin[m]>
so, that is a thing that needs to be fixed at some point and might be good for a GSoC project (or part of one?)
< rcurtin[m]>
anyway, it is too early to say... we haven't even been accepted as a mentoring organization yet :)
< kaushal07[m]>
Hey ,the Example Zoo idea is quite interesting
< kaushal07[m]>
I would really like to move forward onto it.
< NippunSharmaGitt>
@rcurtin thanks for the information.
< NippunSharmaGitt>
I did not know about the bindings not being threadsafe, I will try to reproduce this issue on my local machine regarding this tomorrow.
< rcurtin[m]>
yeah, I am not sure if the issue is reproducible in every language, but it's at least reproducible in Julia :)
< rcurtin[m]>
the results can be very very strange 😃
< rcurtin[m]>
basically, each individual thread will try to modify values of parameters in the `IO` singleton, so whenever `IO` is accessed from inside `mlpackMain()`... `IO` could hold anything, not the intended values
< rcurtin[m]>
there are many different ways that this issue could be solved---I haven't put much thought into what the right solution is (or even what a feasible solution might be)
< NippunSharmaGitt>
I think it will be a good idea to check whether this issue pops up for the rest of the bindings, I will check that. What are some of the ways that this can be solved ? just asking as I still have to get more familiar with this
< rcurtin[m]>
well I am not quite sure... I haven't had a chance to think about it :)
< rcurtin[m]>
in my company we just made a mutex to ensure that only one thread calls an mlpack binding at a time
< rcurtin[m]>
but that is really, really not a great solution; it's just a temporary workaround
< rcurtin[m]>
maybe it's possible to have a super simple solution that would take basically no time at all---I'm not sure
< NippunSharmaGitt>
thanks, I will try to spend some time on this and maybe I can come up with some solution
< rcurtin[m]>
awesome, feel free to open an issue for discussion (or we can keep chatting here, totally your call)
< NippunSharmaGitt>
I think an issue will be better to keep all the discussion recorded in a single place. If it is fine with you, I will open an issue when I know a little more about this so that I can write a good and detailed description, till then if I have any small doubts I can ask here ?
< rcurtin[m]>
yeah, that sounds great to me---if you manage to find a quick way to reproduce it, paste that too. the way we did it internally at my company is way too complicated, but the problem is definitely that `IO` isn't threadsafe