PyTorchを利用して機械学習(未完)
PyTorch(パイトーチ)とは、Python向けの機械学習(Deep Learning)ライブラリです。
以下の操作は macOS にて作業しており、Docker や tree コマンドがインストールされていることが前提です。
作業ディレクトを作成
Docker を利用して環境を構築します。
$ mkdir docker-pytorch $ cd docker-pytorch
Docker関連のファイル作成
Dockerfile の作成。
FROM python:3
USER root
RUN apt-get update
RUN apt-get -y install locales && \
localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9
ENV TERM xterm
RUN apt-get install -y vim less
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN python -m pip install jupyterlab
RUN python -m pip install numpy
RUN python -m pip install torch torchvision torchaudio
docker-compose.yml の作成。
version: '3'
services:
python3:
restart: always
build: .
container_name: 'python3'
working_dir: '/root/'
tty: true
volumes:
- ./opt:/root/opt
実行
Dockerイメージの作成、コンテナのビルド、そしてコンテナの起動/接続/終了。
$ tree . ├── Dockerfile └── docker-compose.yml 2 files $ docker-compose up -d --build
Tensor(テンソル)
PyTorchを利用する上で、Tensorという配列や行列に似た特殊なデータ構造の知識が必要になります。
Tensorは、多次元配列を形成できるデータ構造で、NumPy の ndarray型に似ています。TensorはGPUや他のハードウェア・アクセラレータ上で動作することができます。
Torchを利用して、Tensorを操作(初期化、算術演算、置換え、要素の取得など)することができます。
Tensorの初期化方法
$ docker-compose exec python3 bash root@python3$ python >>> import torch >>> import numpy as np >>> data = [[1, 2],[3, 4]] >>> x_data = torch.tensor(data) >>> print(f"Tensor value from data: \n {x_data} \n") Tensor value from data: tensor([[1, 2], [3, 4]]) >>> np_array = np.array(data) >>> x_np = torch.from_numpy(np_array) >>> print(f"NumPy array value: \n {np_array} \n") NumPy array value: [[1 2] [3 4]] >>> print(f"Tensor value from NumPy array: \n {x_np} \n") Tensor value from NumPy array: tensor([[1, 2], [3, 4]]) >>> ^D root@python3$ exit
PyTorch
続きはまた後でw