2.5. Linux Setup
This guide provides Linux-specific instructions for installing Tiny ML Tensorlab. Linux is the primary development platform for the toolchain.
2.5.1. System Preparation
Ubuntu/Debian
# Update system
sudo apt update && sudo apt upgrade -y
# Install essential packages
sudo apt install -y build-essential git curl wget \
libssl-dev zlib1g-dev libbz2-dev libreadline-dev \
libsqlite3-dev libncursesw5-dev xz-utils tk-dev \
libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
Fedora/RHEL
sudo dnf install -y git curl wget make gcc gcc-c++ \
openssl-devel bzip2-devel libffi-devel zlib-devel \
readline-devel sqlite-devel ncurses-devel xz-devel
2.5.2. Installing Python 3.10
We recommend using pyenv for Python version management:
# Install pyenv
curl https://pyenv.run | bash
# Add to ~/.bashrc (or ~/.zshrc for zsh users)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
# Reload shell
source ~/.bashrc
# Install Python 3.10
pyenv install 3.10.14
# Set as global default
pyenv global 3.10.14
# Verify
python --version # Should show Python 3.10.14
2.5.3. Installation
Option A: Automated Setup (Recommended)
# Clone repository
git clone https://github.com/TexasInstruments/tinyml-tensorlab.git
cd tinyml-tensorlab/tinyml-modelmaker
# Run setup script
./setup_all.sh
The script handles:
Virtual environment creation
Dependency installation
Editable installation of all components
Option B: Manual Installation
# Clone repository
git clone https://github.com/TexasInstruments/tinyml-tensorlab.git
cd tinyml-tensorlab
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Upgrade pip
pip install --upgrade pip
# Install components
cd tinyml-modelmaker && pip install -e .
cd ../tinyml-tinyverse && pip install -e .
cd ../tinyml-modeloptimization/torchmodelopt && pip install -e .
cd ../../tinyml-modelzoo && pip install -e .
2.5.4. Verification
# Activate environment
source venv/bin/activate
# Verify Python packages
python -c "import tinyml_modelmaker; print('OK')"
python -c "import tinyml_tinyverse; print('OK')"
python -c "import tinyml_modelzoo; print('OK')"
python -c "import tinyml_torchmodelopt; print('OK')"
# Run hello world example
cd tinyml-modelzoo
./run_tinyml_modelzoo.sh examples/generic_timeseries_classification/config.yaml
2.5.5. GPU Setup (Optional)
For NVIDIA GPU support (useful for NAS):
Install NVIDIA Drivers
# Ubuntu
sudo apt install -y nvidia-driver-535 # Or latest version
# Verify
nvidia-smi
Install CUDA Toolkit
Download from https://developer.nvidia.com/cuda-downloads
Or use conda/pip:
# PyTorch with CUDA is installed automatically
# Verify CUDA availability
python -c "import torch; print(f'CUDA available: {torch.cuda.is_available()}')"
2.5.6. Shell Configuration
Alias for Quick Access
Add to ~/.bashrc:
# Tiny ML Tensorlab aliases
alias tensorlab='cd ~/tinyml-tensorlab && source venv/bin/activate'
alias run-tensorlab='./run_tinyml_modelzoo.sh'
Auto-activate Environment
For automatic activation when entering the directory:
# Add to ~/.bashrc
function cd() {
builtin cd "$@"
if [ -f "venv/bin/activate" ]; then
source venv/bin/activate
fi
}
2.5.7. Permission Issues
Make Scripts Executable
chmod +x tinyml-modelzoo/run_tinyml_modelzoo.sh
chmod +x tinyml-modelmaker/run_tinyml_modelmaker.sh
chmod +x tinyml-modelmaker/setup_all.sh
Fix Permission Denied Errors
If you encounter permission errors:
# Check file ownership
ls -la
# Fix ownership if needed
sudo chown -R $USER:$USER ~/tinyml-tensorlab
2.5.8. Multiple Python Versions
If you need to manage multiple Python projects:
# Set local version for this project only
cd ~/tinyml-tensorlab
pyenv local 3.10.14
# This creates a .python-version file
# Python 3.10 will be used automatically in this directory
2.5.9. System Service (Optional)
For running training jobs as a background service:
Create /etc/systemd/system/tensorlab-training.service:
[Unit]
Description=Tiny ML Training Job
After=network.target
[Service]
Type=simple
User=your_username
WorkingDirectory=/home/your_username/tinyml-tensorlab/tinyml-modelzoo
ExecStart=/home/your_username/tinyml-tensorlab/venv/bin/python -m tinyml_modelmaker config.yaml
Restart=no
[Install]
WantedBy=multi-user.target
2.5.10. Troubleshooting
“pyenv: command not found”
Ensure pyenv is in your PATH:
source ~/.bashrc
# Or log out and log back in
CUDA out of memory
Reduce batch size or use CPU:
training:
batch_size: 64 # Reduce from 256
num_gpus: 0 # Use CPU
Slow training without GPU
This is expected. For faster training:
Use a smaller model
Reduce training epochs
Use Google Colab with free GPU
2.5.11. Next Steps
Environment Variables - Configure TI compiler paths
Quickstart - Train your first model