Skip to content

alarxx/d2l

Repository files navigation

D2L

Reference:

  • Zhang, A., Lipton, Z. C., Li, M., & Smola, A. J. (2023). Dive into deep learning. Cambridge University Press. https://d2l.ai/

Python

module - file

packet - directory with files + __init__.py

Ссылка модуля на самого себя:

current_module = sys.modules[__name__]

Workflow

Install Git and Python:

apt install git
apt install python3 python3-pip python3-venv

Initialize local git repo:

git config --global user.name "username"
git config --global user.email [email protected]
git config --global init.defaultBranch main
git init

Git Remote Repository

git remote add <origin> <url>
git fetch

# remote name
git remote
# --verbose : fetch and push
git remote -v
# remote branches
git branch -r
# local branches
git branch -v
git branch
# switch
git checkout main

Python Virtual Environment

Create python virtual environment:

python3 -m venv .venv
source ./venv/bin/activate
# deactivate
# pip install numpy

Add this environment to .gitignore (if it's not there already):

echo "venv/" >> .gitignore

freeze current environment packages:

pip freeze > requirements.txt

To recreate environment in future, run:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Updating packages in a virtual environment:

pip install --upgrade -r requirements.txt

But, if you added new library, then run freeze command.


Anaconda

Зачем нужна Anaconda?

И Anaconda и PIP являются являются менеджерами среды и пакетов.

Conda устанавливает предварительно скомпилированные бинарные пакеты. С Python VENV некоторые библиотеки могут требовать компиляции или внешних C-библиотек, что отностельно долго и может быть проблемой на разных OS.

Conda управляет версией python, python-библиотеками и главное отличие - ==системными зависимостями==, как версия CUDA, например.

Anaconda идет с множеством предустановленных библиотек: NumPy, Pandas, Matplotlib/Seaborn, Scikit-learn, TensorFlow/PyTorch.

Miniconda: conda install.

Miniconda

https://www.anaconda.com/docs/getting-started/miniconda/install

mkdir ~/miniconda3
cd ~/miniconda3
# wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh > miniconda.sh
# bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
bash ./miniconda.sh
rm ./miniconda.sh

Там потом спросят хотите ли вы, чтобы conda всегда автоматически инициализировалась в терминале. Если ответил 'no' -> Manual Shell Initialization:

source ~/miniconda3/bin/activate
conda init --all # initialize on all available shells

Re-open terminal or run:

source ~/.bashrc

Теперь по умолчанию (base) environment, чтобы убрать run:

conda deactivate

or:

conda config --set auto_activate_base false

and to return:

conda activate base

Environments

https://docs.anaconda.com/working-with-conda/environments/

Creating (transaction):

conda create -n <ENV_NAME> python=<VERSION> <PACKAGE>=<VERSION>
conda create -n myenv python=3.11 numpy
conda info --envs # available envs
conda activate <ENV_NAME>

conda deactivate

Sharing an environment

Export env config:

conda env export > environment.yml

This file handles both the environment’s pip packages and conda packages.

Creating from .yml:

conda env create -f environment.yml

Кажется, <ENV_NAME> должно быть уникальным для каждого проекта? Вроде необязательно.

Странно, можно скачивать в окружении conda, как с помощью conda, так и с помощью pip, но не рекомендуется скачивать с pip, только если бинарников библиотеки нет в conda репозиториях.

Как сменить версию python:

conda uninstall python # кажется это удаляет все зависимости
conda install python=3.9
conda install anaconda::jupyter
  • defaults
  • conda-forge
  • anaconda - поддерживаемая Anaconda Inc.

Install Dependencies

conda activate myenv
pip install d2l
# https://pytorch.org/get-started
pip install torch torchvision torchaudio

D2L Notebooks

mkdir d2l-en && cd d2l-en
curl https://d2l.ai/d2l-en-1.0.3.zip -o d2l-en.zip
unzip d2l-en.zip && rm d2l-en.zip
cd pytorch
# conda activate myenv
jupyter notebook

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages