Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
MarcCote opened this issue Aug 6, 2015 · 6 comments
Open

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

MarcCote opened this issue Aug 6, 2015 · 6 comments

Comments

@MarcCote
Copy link
Member

MarcCote commented Aug 6, 2015

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
Copy link
Member

ASalvail commented Aug 6, 2015

Or we could put those objects in smartpy?

@MarcCote
Copy link
Member Author

MarcCote commented Aug 6, 2015

@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
Copy link
Member Author

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
Copy link
Member

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
Copy link
Member Author

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
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants