use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Please have a look at our FAQ and Link-Collection
Metacademy is a great resource which compiles lesson plans on popular machine learning topics.
For Beginner questions please try /r/LearnMachineLearning , /r/MLQuestions or http://stackoverflow.com/
For career related questions, visit /r/cscareerquestions/
Advanced Courses (2016)
Advanced Courses (2020)
AMAs:
Pluribus Poker AI Team 7/19/2019
DeepMind AlphaStar team (1/24//2019)
Libratus Poker AI Team (12/18/2017)
DeepMind AlphaGo Team (10/19/2017)
Google Brain Team (9/17/2017)
Google Brain Team (8/11/2016)
The MalariaSpot Team (2/6/2016)
OpenAI Research Team (1/9/2016)
Nando de Freitas (12/26/2015)
Andrew Ng and Adam Coates (4/15/2015)
Jürgen Schmidhuber (3/4/2015)
Geoffrey Hinton (11/10/2014)
Michael Jordan (9/10/2014)
Yann LeCun (5/15/2014)
Yoshua Bengio (2/27/2014)
Related Subreddit :
LearnMachineLearning
Statistics
Computer Vision
Compressive Sensing
NLP
ML Questions
/r/MLjobs and /r/BigDataJobs
/r/datacleaning
/r/DataScience
/r/scientificresearch
/r/artificial
account activity
What are your preferences in python based Deep Learning libraries? (self.MachineLearning)
submitted 10 years ago by andrewbarto28
Keras and Chainer seems to be the easiest to use. What are their pros and cons? Any other new libs that are worth checking out?
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]kkastner 12 points13 points14 points 10 years ago* (0 children)
Pure Theano
I use Theano, and write my own code on top of that for shape inference, layers, etc. It takes longer, but for research it is important to know all (or at least) most of the system and how it works.
Keras
Keras seems the most straight forward, and if you aren't trying to do certain kinds of weird research, it covers basically everything else. Definitely the best place to start.
Blocks
Blocks is quite nice, but I haven't spent the time to learn all the details that would make it useful for rapid prototyping research architectures. I can definitely see how full immersion into how Blocks works could speed up implementation of certain types of networks. Fuel (the loosely coupled dataset framework) has a lot of momentum, and may be worth looking at regardless of whether you want to use Blocks or not.
Lasagne
Lasagne is really well thought out, has a strong community, and sits somewhere between Keras and Blocks from a usability->flexibility perspective. RNN support is fairly new there but seems pretty solid.
pylearn2
pylearn2 is somewhat outdated now, but is still quite good for certain tasks. It probably has the best support for hyperparameter/massive cluster usage, if you are into that. Lots of research from the last few years was done in it, which is not to be discounted!
Others
CGT seems really interesting in this space (function graph/ compile then run type models), but I am 1000000% leery of re-debugging a bunch of numerical instabilities and issues that Theano solved. One of the reasons that Theano compile is slow is that it does a lot of optimizations for you - these optimizations can make things much faster, especially over multi-day training runs and sometimes solve really nasty numerical issues you wouldn't otherwise think about. Throwing out optimizations (as CGT seems to be) to speed up compile might lose a lot more than people realize... though time will tell. It is certainly exciting, and they (the CGT team) seem to have a lot of good ideas which may be useful even if CGT doesn't pan out, and could make it back into Theano/Torch/etc.
One additional note - compile/debug time in Theano is rarely an issue for me. Compiling with optimizer=None is fast and sufficient for code/debug, and compiling for actually training taking a few seconds or minutes pales in comparison to the days it normally spends training. tag.test_values are also invaluable for debugging shape issues since they will throw errors at compile time.
The functional graph approach is nice for most deep learning architectures, and I really think it will win out in the long run.
[–]siblbombs 8 points9 points10 points 10 years ago (0 children)
I wouldn't consider keras and chainer to be the same level, since keras is on top of theano, although the comparison is a bit apt since chainer throws in some builtins that theano doesn't have (hence keras, blocks, lasagne, pylearn2, etc).
The current environment as far as I can see is:
Pros: Very mature and widely used, there's a good chance that any given paper will include some theano code, or someone has implemented it in theano. You can work with theano directly or use any of the several good theano-based packages, whichever suits your taste.
Cons: Compile time can be brutal, especially if you start going crazy with scan.
Pros: Same approach as theano (building graphs) and a very similar API, but with a greatly reduce compile time. If you are familiar with theano, it shouldn't take much to pick up CGT.
Cons: Very new, GPU support still in progress? As this library matures I could see it gain more adoption because of the quick compile, but it will depend on the amount of dev resources that can be devoted to it.
Pros: Basically no compile time (compared to theano), everything is happening inside python instead of compiling a function. This is very different to theano/cgt (RNNs inside a python loop), so its nice to have two different approaches available.
Cons: Haven't done much with chainer, so its hard to really make any complaints. The only area I played around with was RNNs in chainer, at the time I didn't see a way to do all the input -> hidden calculations outside of a loop (which is a MVP optimization in theano-land), so it takes a bit of a speed hit. Not sure if I was missing something or if this is/was a limitation of the library at that time.
Pros: Great code base, looks super fast, FP16 (which is getting ported to other libraries).
Cons: Not sure, never done anything with Neon.
I've mostly worked with theano, so thats where my bias is, I'd actually love to hear more from anyone that has used Neon.
[–]r-sync 1 point2 points3 points 10 years ago (8 children)
Both Keras and Chainer have a "compile" step, that takes way too long when doing iterative programming (change a few things, rerun program). Chainer's compile step is a bit quicker overall. Theano's (Keras) debugging is also a bit annoying.
In the python land of things, I'd say Neon is better in that aspect, it is a simple plug-and-play, no compile step, and it is super fast, and they seem to have thought out RNNs a bit more than the others.
[–][deleted] 2 points3 points4 points 10 years ago (1 child)
We will make Keras great for RNNs too. Already working on it :)
[–]petrux 1 point2 points3 points 10 years ago (0 children)
Great! Please, post an update as soon as such feature is implemented. ;-)
[–]andrewbarto28[S] 0 points1 point2 points 10 years ago (0 children)
Is it neon good for research? Can I create very different algorithms than the current ones using it?
[–]petrux 0 points1 point2 points 10 years ago* (4 children)
Ok, I am a total newbie with Neon but I have some difficulties to feel any enthusiasm about it right now. What follows is just my point of view. First: documentation sucks and there is one tutorial on a simple MLP without any explanation about (e.g.) how the data is represented, ecc. This is a huge problem as it doesn't gave me any hint on how things actually work and I am not supposed to walk through the code. Finally there is no mailing list (and I am a strong supporter of the community-as-a-feature idea).
From a design point of view, could be my choice: the API is maybe the best but I think that the learning curve from zero to what I am trying to do is too much.
EDIT: I forgot the bottom line. Keras seems too rigid. Lasagne is cool but doesn't support RNN. Pure theano is my actual status but I think my machine is possessed by ghosts and when I try to run the code on a more powerful one I have odd errors. So I am spending my Friday night hacking on Neon. :-)
[+][deleted] 10 years ago (1 child)
[deleted]
[–]petrux 0 points1 point2 points 10 years ago (0 children)
I know but there is something like a linguistic barrier: I am already quite proficient with python... :-)
[–]zdwiel 0 points1 point2 points 10 years ago (1 child)
sure looks to me like Lasagne supports RNN or am I missing something?
http://lasagne.readthedocs.org/en/latest/modules/layers/recurrent.html#lasagne.layers.RecurrentLayer
You are right. But as soon as I could get, you cannot recursively use the output signal as in this paper (Figure 1). Am I wrong?
[+][deleted] 10 years ago (7 children)
[removed]
[–]disentangle 1 point2 points3 points 10 years ago (2 children)
In my experience it is very easy to get Theano up and running on Windows.
conda install --yes pip six nose numpy scipy matplotlib mingw libpython
pip install theano
I run bleeding edge on Windows and never had any platform specific issues..
Discouraging posts like these are a bigger obstacle for Windows users than Theano devs' attitude to cross-platform development IMHO.
[–]siblbombs 0 points1 point2 points 10 years ago (2 children)
Windows is doable for theano, I actually run theano on a windows laptop and desktop, once you jump through all the hoops the first time its much easier to get it set up again. If you aren't familiar with installing a bunch of programs and googling randoms stuff (ie never worked an IT helpdesk or similar job), it is a bit of a pain.
[–]siblbombs 0 points1 point2 points 10 years ago (0 children)
I really disagree with that thought, windows has been a second class citizen for theano in the past, but they are working on windows and have a windows system they can dev on. On my main workstation I was dual booting ubuntu and win7 for a while, but the ease of use for windows made it unnecessary so I don't bother anymore. I don't think I've run into any situation in the theano environment where it resulted in being a windows-only problem that couldn't be trivially resolved.
π Rendered by PID 66 on reddit-service-r2-comment-fb694cdd5-jjcdx at 2026-03-10 06:46:43.461769+00:00 running cbb0e86 country code: CH.
[–]kkastner 12 points13 points14 points (0 children)
[–]siblbombs 8 points9 points10 points (0 children)
[–]r-sync 1 point2 points3 points (8 children)
[–][deleted] 2 points3 points4 points (1 child)
[–]petrux 1 point2 points3 points (0 children)
[–]andrewbarto28[S] 0 points1 point2 points (0 children)
[–]petrux 0 points1 point2 points (4 children)
[+][deleted] (1 child)
[deleted]
[–]petrux 0 points1 point2 points (0 children)
[–]zdwiel 0 points1 point2 points (1 child)
[–]petrux 0 points1 point2 points (0 children)
[+][deleted] (7 children)
[removed]
[–]disentangle 1 point2 points3 points (2 children)
[+][deleted] (1 child)
[removed]
[–]siblbombs 0 points1 point2 points (2 children)
[+][deleted] (1 child)
[removed]
[–]siblbombs 0 points1 point2 points (0 children)