SMART-Lab / smartmodels

Repository containing all different models we developed in the SMART.
0 stars 2 forks source link

Make smart-models a library with a dependency on smart-learner. #13

Open MarcCote opened 9 years ago

MarcCote commented 9 years ago

We could more easily import reusable pieces of code that are related only to the models (e.g. WeightInitializer, Layer objects, etc.) if smart-models is a library i.e. accessible via PYTHONPATH.

We already started, just make it clean.

ASalvail commented 9 years ago

Or we could put those objects in smartpy?

MarcCote commented 9 years ago

@mgermain raised a good point about that. We should keep in smart-_learner_ things only related to the training/learning process. For instance, the Layer class should not be in smart-learner since the latter doesn't need to know about it to train a model.

A good rule of thumb to know if something should go in smart-models might be: once a model is trained we should be able to use it without having the smart-learner library installed.

That being said, WeightInitializer would go in the smart-learner library.

MarcCote commented 9 years ago

I think the main focus of smart-models was really fuzzy from the start. We should use this library to put everything that can help us creating models but no models per se. For instance, we could have many types of layers, activation functions, etc.

That said, we definitively need a repo (yes, yet another one) to keep ours models. We could call it smartlearner-examples or smartlab-projects or something along those lines. That repo will contain one folder per project/example (as we wanted to do initially).

So, we probably don't want a dependency with smart-learner.

Also, @ASalvail I think we both agree we don't want to spend time reimplementing every "brick" that goes into smartmodels, and prefer reusing stuff from blocks whenever possible. If we do go all the way with blocks, we might want to rename this repo smartmodels-blocks just so it's clear to everyone that it has a hard dependency on blocks.

ASalvail commented 9 years ago

I think the main focus of smart-models was really fuzzy from the start. We should use this library to put everything that can help us creating models but no models per se. For instance, we could have many types of layers, activation functions, etc.

If we do that, it should be merged in SL.

That said, we definitively need a repo (yes, yet another one) to keep ours models. We could call it smartlearner-examples or smartlab-projects or something along those lines.

At this point, these would be private repositories.

So, we probably don't want a dependency with smart-learner.

That would be difficult to achieve, but I guess not impossible. Still, I'd rather merge the models parts back inside SL. You would have no reasons not to.

If we do go all the way with blocks, we might want to rename this repo smartmodels-blocks just so it's clear to everyone that it has a hard dependency on blocks.

I don't see why. We never though of calling SM smartmodels-theano even though it has a pretty hard dependency on it.

Blocks is still in its infancy. I think we'd rather try to contribute actively to it instead of go on using SM. However, their pipeline for training is really not what I'm looking for, so SL still has something going for it.

tl;dr : ditch smartmodels and integrate the good parts into smartlearners. Use private repositories for models. Cannonical models could be brought into smartlearners, eventually. For now it doesn't really matter as we all work on separate models.

MarcCote commented 9 years ago

tl;dr : ditch smartmodels and integrate the good parts into smartlearners.

Right now, there is nothing in smartmodels excepts the perceptron model. What would you want to integrate in smartlearners?

Use private repositories for models. Cannonical models could be brought into smartlearners, eventually. For now it doesn't really matter as we all work on separate models.

I'll create a smartlearner-examples repo. I intend to fork it and have my different models I'm working on in different branches. Feel free to use your own private repo (my student pack expired so I can't have private repo on github anymore).

ASalvail commented 9 years ago

Right now, there is nothing in smartmodels excepts the perceptron model. What would you want to integrate in smartlearners?

Most of the content of PR #15

(my student pack expired so I can't have private repo on github anymore)

That's weird : Github just gave me 5 private repos for life.