Can my standard laptop be used to run deep learning projects? I wish to do a project in deep learning using deep convolutional neural networks and deep Q learning. However, I am not sure if my laptop is up to the task. 
I am currently running 64 bit Win 10 OS, Intel(R) Core i7, 16 GB ram with NVIDIA GeForce 940MX graphics card. I plan to use tensorflow or pytorch to play around with some deep learning projects, eventually the ones involving deep q learning. I am specifically curious about the GPU requirements for running these projects on laptops, as I simply cannot purchase a GPU and replace or add it onto to my laptop.
I know this question is sort of out of the scope of this stackexchange, but I simply cannot find any other websites with people who are doing deep learning.    
 A: The benchmarks described in 
https://github.com/jcjohnson/cnn-benchmarks
are very instructive. If you want to estimate how much slower your model will be,a rough guideline is to do one  forward and backward pass on the code described above, divide it by the time taken on a GPU, and you will get an idea of how many X your model will be slower.
GPUs are not "necessary", they are just helpful. I ran into similar issues a while back, when I was training some of the models on a machine which did not have a gpu. Unfortunately, some of the open source code assumes that you will have GPUs at your disposal, since otherwise the training time is irrationally high. If you run the code you pull on github, you might have to spend a reasonable amount of time downgrading the code to work on "cpu only mode" (Its not merely a flip of a switch, you might need to hack with the actual code, even those you might get from reliable places like FB research..I am speaking from experience)
If you have access to only a CPU, it might not be worth training a model, simply download a trained model, and backpropopgate through the last 1-2 layers.
As an instructive example,  at TEST time, faster-rcnn is 10% slower (source - https://github.com/rbgirshick/py-faster-rcnn) on CPU alone; at training time, I can only imagine. 
A: As other have said in their answers, using your laptop should be perfectly fine for running inference on trained models. However, training a network from scratch (or even fine-tuning one) takes quite a long time, and having a training occupying 100% of your laptop's CPU for a week just to find out you need to change some hyperparameters and start again will be probably not the best for your workflow.
If you consider training your own models but don't want to invest in the high-end hardware, you might want to use some of the deep learning cloud computing platforms. For example, FloydHub seems to have very user-friendly interface (even though I have no personal experience with the service). Other options include Amazon Web Services, Google Cloud, and even Nvidia has their own cloud solution.
Also, I am not sure if you are affiliated with a university or a company, but it might be the case the institution has some high-performance computing platform available. I would inform myself with your boss/supervisor and colleagues from other departments.
A: I have an hulking old refurbished T520 with the CD drive ripped out and the plastic busted out of the corner from when I dropped it. 8 GB of RAM. You know what? I've done quite a lot with keras, tensorflow and theano on that machine. Things start to go south with CNNs on bigger images, but the point is: no excuses! Install that stuff and start learning!!

@JanKukacka's right about other cloud options. I have used Amazon's GPU instance on EC2. It can get expensive - you'll want to spin up a spot instance if you can. People have complained that the EC2 GPU instances are not as fast as they should be, saying that a $100 GPU card on a dedicated machine can perform better. I don't know about that, but I can say it is way faster than my laptop.
Believe it or not I actually considered trying to add a GPU to the T520 (it's that special to me). But from my research, I took away the line, "laptops don't have GPUs!" from some message board and stopped looking. I'm expecting to see a comment below explaining why that's wrong.
Another complaint about using a cloud GPU is that there's a time-tax for everything you do, especially if you're cheap like me and want to terminate the instance when you're done using it. Spinning up the machine, moving data, etc. all take time and drain a non-trivial amount of energy. I have to admit, it would be nice to have a powerful GPU machine that's all mine all the time. But one thing that doesn't sound nice is configuring the GPU. At least with EC2 you can find community instances that are already configured to use the GPU with tensorflow or theano.
A: The key question is: are you going to train models yourself or use pretrained models?
If you can stick to pretrained models and do transfer learning, you should be fine - you can do this in any framework, for example see pretrained models in Keras. You can actually do lots of interesting stuff with pretrained models - look up transfer learning. For example you can use couple of lower-level layers from network trained on ImageNet as feature extractor, and then put several fully connected layers on top of that, and train it on relatively small dataset with decent results, and it will work even on smaller machines (I recently did something similar without even using GPU).
On the other hand, training your own models may be a bad idea - remember some of the state-of-the-art models are trained for weeks in multiple-machine (or multi-GPU) settings, and also for some applications the data may not be easily available (for example check out the problems with Text summarization with Tensorflow that is described in this comparison of summarization methods).
