CNTK for Python のインストール(Ubuntu 上)
- CNTK の対応状況と Ubuntu での実行方法
- 前準備:Docker のインストール(Ubuntu 上)
- CNTK for Python の実行(Docker イメージを使用)(Ubuntu 上)
- CNTK for Python の GPU 対応版の実行(Docker イメージを使用)(Ubuntu 上)
- Python 3.6 の環境を用意して pip でインストールする方法
利用条件は利用者において確認すること.
【サイト内の関連ページ】
【関連する外部ページ】
- CNTK for Python のインストール(Linux 上)の公式ドキュメント: https://learn.microsoft.com/en-us/cognitive-toolkit/setup-linux-python
- CNTK の GitHub リポジトリ: https://github.com/microsoft/CNTK
- CNTK の Docker イメージ: https://hub.docker.com/r/microsoft/cntk-release
- CNTK の Python パッケージ: https://pypi.org/project/cntk/
CNTK の対応状況と Ubuntu での実行方法
CNTK の開発は終了している.2019年3月公開の CNTK 2.7 が最後のメジャーリリースであり,Python パッケージの最後の公開は 2020年12月の 2.7.post2 である.GitHub リポジトリは 2026年2月にアーカイブされ,読み取り専用になっている.新規に開発を行う場合は,PyTorch,TensorFlow,ONNX Runtime などを使用する.CNTK 2.7 は ONNX 形式でのモデルの入出力に対応しているため,既存の CNTK のモデルは ONNX 形式に書き出して他のフレームワークで利用できる.
対応する Python のバージョン
CNTK 2.7.post2 で配布されている Linux 用の wheel ファイルは,Python 2.7,Python 3.5,Python 3.6 用のみである(PyPI の配布ファイル一覧による).Python 3.7 以降では「pip install cntk」は「No matching distribution found」となり失敗する.
Ubuntu のシステム Python のバージョンは次のとおりである.いずれも CNTK 2.7 が対応しないバージョンである.
- Ubuntu 22.04: Python 3.10
- Ubuntu 24.04: Python 3.12
- Ubuntu 26.04: Python 3.14
OpenMPI のバージョン
CNTK 2.7 の Linux 版は OpenMPI 1.10 系(共有ライブラリ libmpi.so.12)を使用する.Ubuntu 22.04 以降の openmpi-bin パッケージは OpenMPI 4.1 系以降(libmpi.so.40)であり,これをインストールしても CNTK の import 時に「libmpi.so.12: cannot open shared object file」というエラーになる.
Ubuntu 22.04, 24.04, 26.04 での実行方法
以上のとおり,Ubuntu 22.04, 24.04, 26.04 では,システム Python への「pip install cntk」では CNTK は動作しない.これらの Ubuntu で CNTK を実行するときは,CNTK 公式の Docker イメージを使用する.このイメージは Ubuntu 16.04 をベースとし,対応バージョンの Python と OpenMPI を同梱している(x86_64 向けである).以下では,その手順を説明する.
前準備:Docker のインストール(Ubuntu 上)
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは,端末で,次のコマンドを実行する.
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
Docker のインストール
Docker をインストールするには,端末で,次のコマンドを実行する.
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install docker.io
sudo を付けずに docker コマンドを実行できるようにするには,端末で,次のコマンドを実行する.設定を反映させるため,実行後に一度ログアウトし,ログインし直す.
sudo usermod -aG docker $USER
CNTK for Python の実行(Docker イメージを使用)(Ubuntu 上)
- CNTK の Docker イメージの取得
端末で,次のコマンドを実行する.取得されるのは CPU 版の CNTK 2.7(Python 3.5 同梱)のイメージである.
docker pull mcr.microsoft.com/cntk/release:2.7-cpu-python3.5 - コンテナの起動
端末で,次のコマンドを実行する.カレントディレクトリがコンテナ内の /work にマウントされる.
docker run -it --rm -v "$PWD":/work -w /work mcr.microsoft.com/cntk/release:2.7-cpu-python3.5 bash - CNTK の Python 環境の有効化
コンテナ内では,CNTK は Anaconda の cntk-py35 環境に含まれている.有効化するには,コンテナ内のシェルで,次のコマンドを実行する.
source /cntk/activate-cntk - 動作の確認
コンテナ内のシェルで,次のコマンドを実行する.バージョン番号(2.7)が表示されれば,CNTK は動作している.
python -c "import cntk; print(cntk.__version__)" - コンテナの終了
コンテナ内のシェルで,次のコマンドを実行する.
exit
CNTK for Python の GPU 対応版の実行(Docker イメージを使用)(Ubuntu 上)
- NVIDIA Container Toolkit のインストール
GPU 対応版を使用するときは,NVIDIA ドライバと NVIDIA Container Toolkit が必要である.NVIDIA Container Toolkit は Ubuntu の標準リポジトリでは提供されないため,NVIDIA のリポジトリを登録してインストールする.端末で,次のコマンドを実行する.
# パッケージリストの情報を更新 sudo apt update sudo apt -y install ca-certificates curl gnupg2 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt update sudo apt -y install nvidia-container-toolkitDocker から NVIDIA Container Runtime を使用する設定を行うには,端末で,次のコマンドを実行する.
sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker - GPU 対応版の Docker イメージの取得
端末で,次のコマンドを実行する.CNTK 2.7 の GPU 対応版が対応するのは CUDA 10.0 と cuDNN 7 であり,これらはイメージに同梱されている.
docker pull mcr.microsoft.com/cntk/release:2.7-gpu-python3.5-cuda10.0-cudnn7.3 - コンテナの起動と動作の確認
端末で,次のコマンドを実行する.
docker run -it --rm --gpus all -v "$PWD":/work -w /work mcr.microsoft.com/cntk/release:2.7-gpu-python3.5-cuda10.0-cudnn7.3 bashコンテナ内のシェルで,次のコマンドを実行する.GPU が認識されていれば,デバイスの一覧に GPU が表示される.
source /cntk/activate-cntk python -c "import cntk; print(cntk.__version__); print(cntk.all_devices())"
Python 3.6 の環境を用意して pip でインストールする方法
Docker を使用せずに Ubuntu 上に直接 CNTK をインストールするときは,Python 3.6 の環境と OpenMPI 1.10 系の共有ライブラリの両方を用意する.Ubuntu 22.04, 24.04, 26.04 では,どちらも標準のパッケージでは提供されない.手順は次のとおりである.
- ビルドツールのインストール
pyenv で Python 3.6 をソースからビルドするために必要である.端末で,次のコマンドを実行する.
# パッケージリストの情報を更新 sudo apt update sudo apt -y install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev liblzma-dev curl git - pyenv のインストールと Python 3.6 のビルド
端末で,次のコマンドを実行する.Python 3.6 は OpenSSL 1.x を前提としているため,OpenSSL 3.x を採用する Ubuntu 22.04 以降ではビルドに失敗することがある.失敗したときは,前の節の Docker を使用する方法に切り替える.
curl https://pyenv.run | bash export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" pyenv install 3.6.15 - 仮想環境の作成と CNTK のインストール
Ubuntu 23.04 以降ではシステム Python への pip でのインストールが制限されている(PEP 668)ため,仮想環境を作成し,その中にインストールする.端末で,次のコマンドを実行する.
~/.pyenv/versions/3.6.15/bin/python -m venv ~/cntk-env source ~/cntk-env/bin/activate pip install -U pip pip install numpy scipy h5py pip install cntkGPU 対応版をインストールするときは,「pip install cntk」でなくて,次のコマンドを実行する.CPU 版の cntk と GPU 版の cntk-gpu は,同じ環境に同時にインストールしない.
pip install cntk-gpu - OpenMPI 1.10 系の共有ライブラリの用意
CNTK の import には libmpi.so.12 が必要である.Ubuntu 22.04 以降の openmpi-bin パッケージでは提供されないため,OpenMPI 1.10 系をソースからビルドして任意のディレクトリにインストールし,そのライブラリのディレクトリを LD_LIBRARY_PATH に設定する.端末で,次のコマンドを実行する.
cd /tmp curl -O https://download.open-mpi.org/release/open-mpi/v1.10/openmpi-1.10.7.tar.gz tar zxf openmpi-1.10.7.tar.gz cd openmpi-1.10.7 ./configure --prefix=$HOME/openmpi-1.10.7 make -j $(nproc) make install export LD_LIBRARY_PATH=$HOME/openmpi-1.10.7/lib:$LD_LIBRARY_PATH - インストールできたことの確認
端末で,次のコマンドを実行する.バージョン番号(2.7)が表示されれば,インストールは成功している.
python -c "import cntk; print(cntk.__version__)"