I am trying to learn Theano and TensorFlow for building neural networks for NLP based tasks. Any suggestions as to when one should choose one over the other or what works better and when or is it just a personal choice of what one is comfortable with?
Theano is probably the best framework you can use today, but TensorFlow is rapidly getting better and includes more functionality (like built-in optimizers, support for LSTMs etc) that are particularly useful for building NLP models quickly. In my testing, the slow-down from using TensorFlow ranges from about 1.5-3.0 times slower than using Theano, but its performance will depend on your application. TensorFlow is currently ranked near the top for convolutional operations, so if you're interested in building things like CHARSCNN it should be pretty fast. Also, TensorFlow starts up extremely fast, making it better for the initial phase of model development when you're prototyping.