Tools
My most frequently-used tools to set up working space, monitor machine learning projects and deploy models.
1. Set Up Virtual Machines
- Google Cloud setup and tutorial: A comprehensive tutorial to set up a Google Cloud virtual machine by CS231n (Stanford).
- Server setup tutorial by fast.ai: Tutorials to set up virtual machines on Google Cloud, Azure, AWS… for fast.ai courses.
- Remote SSH with Visual Studio Code: A tutorial to connect to virtual machines on VSCode with Remote SSH. It helps making working on VM easy and smooth as working locally.
2. Set Up Work Spaces
- Byobu for Terminal Management: My favorite tool when wokring on cloud. Byobu allows us to create sessions to open multiple terminal windows. We can detach a session and turn off our computer when training models on cloud and reactivate the session later to continue the training process.
- Managing Anaconda environments: Everything we need to know to manage our conda virtual environments.
- Setting up a Data Science environment using WSL and Jupyter: A guide to set up Windows Subsystem for Linux (WSL), install Anaconda and Jupyter on Ubuntu.
- Oh-my-zsh and agnoster theme: Set up a beautiful and functional theme for your terminal.
- Setting up development environment for machine learning by Abhishek Thakur: A YouTube tutorial to set up development environment for machine learning projects.
- Ipykernel: Create kernels for different environments so we can switch environments within Jupyter Lab/Notebook.
3. VSCode
My favorite VSCode setup for machine learning projects 🤗. First, I use RemoteSSH
extension to SSH to a virtual machine. It makes interacting with files on cloud as smooth as working locally. Then I use Byobu
to open multiple terminal windows: htop
(monitor CPUs), watch -n1 nvidia-smi
(monitor GPUs), jupyter lab
, tensorboard dev upload --logdir .
(upload logs to TensorBoard.dev) etc. I can press F2
to create a new window and press F4
to switch between windows. Extremely convenient ⚡!
- My favorite theme: Dracula 🧛♂️
- Extensions:
- 🌟RemoteSSH: Open any folder on a remote machine using SSH and take advantage of VS Code’s full feature set.
- GitLens: Make Git more powerful on Visual Studio Code.
- Peacock: Subtly change the workspace color of our workspace. Ideal when we have multiple VSCode instances.
- vscode-icons: Icons for Visual Studio Code.
- Bracket Pair Colorizer: A customizable extension for colorizing matching brackets.
- Code Spell Checker: Spelling checker for source code.
- Setting Sync: Synchronize settings, snippets, themes, file icons, launch, keybindings, workspaces and extensions across multiple machines.
- Prettier: Code formatter using prettier.
- Config code formatter
- Add vertical rulers
4. Git
Some basic guides to interact with Git.
- GitHub Guides
- Adding an existing project to GitHub using the command line
- Oh-my-zsh Git alias: for extremely fast Git actions.
5. Production
After finishing important machine learning projects, I always want to deploy a simple prototype of my model with Streamlit to illustrate its usage or to present my works with the audience.