Best laptop for machine learning
What if you want to learn AI but don't know math? Part three. We assemble and configure the system
What if you want to learn AI but don't know math? Let's assemble and configure the system after having chose the best laptop for machine learning.
Now let's get down to setting up the software.
You have three options:
- Docker container
- Virtual machine;
- Clean install.
If you want to go this route, then you should start with the official Nvidia-Docker project. However, you still have to put a bunch of frameworks and libraries on top of this image.
Of course, you can also supply a container with everything you need for machine learning, for example, this one. Unfortunately, it has some unresolved problems, and it won’t fit on Dockerhub, so you will have to spend a lot of time on manual configuration.
As I said at the beginning of the article, you can simply upgrade the hardware of your gaming computer, install VMware Workstation Pro that supports GPUs, and start working. This is the cheapest option, and very convenient to use.
As a result, I chose this option. Yes, a little old school, but since I have been working as a system administrator for a long time, I decided to do everything manually — this way you can control the system as much as possible.
Let's first discuss a few details related to software. You will understand that most of the calculations are done using Python. In the future, this may change, but for now this is the main language. R and Scala are also popular, we will also consider them.
Here is a list of all the main packages that we will install:
- Python 2.x
- Anaconda (and Python 3.6) is a high performance Python distribution containing over 100 popular Python, R and Scala packages;
- R — language and environment for statistical calculations;
- Scala is a language similar to Java, but much more performant.
- Drivers and APIs
- Nvidia drivers;
- CUDA is Nvidia's proprietary parallel computing platform and API model;
- cuDNN is a library for Nvidia GPUs for working with deployable neural networks.
- Jupyter is a great web application that allows you to share documentation and code.
- Frameworks / Libraries
- TensorFlow is Google's open source machine learning framework, which powers Google Translate, for example;
- Theano is a popular machine learning framework;
- Caffe is another framework;
- Torch is a scientific computing framework that uses GPUs;
- MXNET is a scalable machine learning system built by Amazon and several universities.
- High Level Libraries
- Keras is a high-level neural network library that runs on top of TensorFlow or Theano.
- Lasagne is a lightweight library for building and training neural networks.
A huge number of libraries have been written for various kinds of scientific activities, we will supply the most necessary ones:
- Pip = package manager for Python;
- Pandas = high performance data analysis library;
- scikit-learn = popular powerful machine learning library;
- NumPy = numerical Python;
- matplotlib = visualization library;
- Scipy = mathematical and scientific calculations;
- IPython = interactive Python;
- Scrappy = web scraping framework;
- NLTK = natural language toolkit;
- Pattern = web mining library;
- Seaborn = statistical visualizations;
- OpenCV = library for working with computer vision;
- Rpy2 = interface to R;
- py-graphviz = statistical graphs;
- OpenBLAS = Linear Algebra.