WindowsでAIプログラミング

Pythonライブラリ:PyTorch(作成中)

クラスとサブクラス機能
torchTensorの作成、GPUの活用など、丸ごとパッケージ。
torch.tensorTensorの生成。
torch.autograd自動微分。
torch.nnニューラルネットワークに関係するクラスのパッケージ。
torch.nn.functional関数のメソッド。
torch.nn.initパラメータの初期値。
torch.optim最適化関数のパッケージ。
torchvision.datasetsデータセットのパッケージ。
torchvision.models既知のネットワーク(モデル)や学習済みモデルのパッケージ。
torchvision.transforms画像データ処理のパッケージ。

torch

Tensorの生成

リストからTensorの生成

torch.tensor([?, ?, …])

numpyからTensorへ変換。

torch.from_numpy

要素が”0.”のTensorの生成

torch.zeros

要素が”1.”のTensorの生成

torch.ones

torch_zeros_like

torch.eye

torch.set_default_dtype

torch.numel

torch.is_tensor

インデックス、スライシング、結合によるTensorの作成

torch.cat

torch.index_select

torch.squeeze

torch.t

torch.transpose

torch.unsqueeze

ランダムサンプリング

torch.bernoulli

torch.multinomial

torch.normal

torch.rand

torch.randn

torch.randperm

数学演算

torch.abs

torch.add

torch.clamp

torch.div

torch.exp

torch.log

torch.mul

torch.round

torch.sigmoid

torch.sign

torch.sqrt

torch.tanh

torch.dot

torch.mm

torch.bmm

torch.matmul

GPU・CUDA関連:TORCH.CUDA

PyTorchでGPUが使用可能か確認

torch.cuda.is_available()

PyTorchで使用できるGPU(デバイス)数の確認

torch.cuda.device_count()

GPUの名称

torch.cuda.get_device_name()

CUDA Compute Capability

torch.cuda.get_device_capability()

学習・検証

重み・バイアスの保存

GPUモデルの重み・バイアスで保存
読み出し方法
GPUで学習してCPUで読み込む
CPUマシンでのGPUモデルの読み出し

データセット

torch.utils.data.Dataset

画像の場合(transform無として)

データローダー

TORCH.UTILS.DATA

torch.utils.data.DataLoader

dataset (Dataset) : dataset from which to load the data.
batch_size (int, optional) : how many samples per batch to load (default: 1).
shuffle (bool, optional) : set to True to have the data reshuffled at every epoch (default: False).
sampler (Sampler or Iterable, optional) : defines the strategy to draw samples from the dataset. Can be any Iterable with len implemented. If specified, shuffle must not be specified.
batch_sampler (Sampler or Iterable, optional) : like sampler, but returns a batch of indices at a time. Mutually exclusive with batch_size, shuffle, sampler, and drop_last.
num_workers (int, optional) : how many subprocesses to use for data loading. 0 means that the data will be loaded in the main process. (default: 0)
collate_fn (callable, optional) : merges a list of samples to form a mini-batch of Tensor(s). Used when using batched loading from a map-style dataset.
pin_memory (bool, optional) : If True, the data loader will copy Tensors into CUDA pinned memory before returning them. If your data elements are a custom type, or your collate_fn returns a batch that is a custom type, see the example below.
drop_last (bool, optional) : set to True to drop the last incomplete batch, if the dataset size is not divisible by the batch size. If False and the size of dataset is not divisible by the batch size, then the last batch will be smaller. (default: False)
timeout (numeric, optional) : if positive, the timeout value for collecting a batch from workers. Should always be non-negative. (default: 0)
worker_init_fn (callable, optional) : If not None, this will be called on each worker subprocess with the worker id (an int in [0, num_workers – 1]) as input, after seeding and before data loading. (default: None)
prefetch_factor (int, optional, keyword-only arg) : Number of samples loaded in advance by each worker. 2 means there will be a total of 2 * num_workers samples prefetched across all workers. (default: 2)
persistent_workers (bool, optional) : If True, the data loader will not shutdown the worker processes after a dataset has been consumed once. This allows to maintain the workers Dataset instances alive. (default: False)

torch.nn

torch.nn.Module

torchvision

コマンド内容入力出力
Compose複数の Transform を連続して行うPIL ImagePIL Image
RandomApply複数の Transform を指定した確率で行うPIL ImagePIL Image
RandomChoice複数の Transform から1つを選択して行うPIL ImagePIL Image
RandomOrder複数の Transform をランダムに順番を入れ替えて行うPIL ImagePIL Image
Padパディングを行うPIL ImagePIL Image
CenterCrop画像の中心を切り抜くPIL ImagePIL Image
FiveCrop4隅及び中心の計5箇所を切り抜くPIL ImagePIL Image のタプル
TenCrop元の画像及び左右反転した画像の4隅及び中心の計10箇所を切り抜くPIL ImagePIL Image のタプル
Resizeリサイズを行うPIL ImagePIL Image
Grayscaleグレースケール変換を行うPIL ImagePIL Image
RandomCropランダムに画像を切り抜くPIL ImagePIL Image
RandomResizedCropランダムにリサイズ及び切り抜きを行うPIL ImagePIL Image
ColorJitterランダムに明るさ、コントラスト、彩度、色相を変化させるPIL ImagePIL Image
RandomGrayscaleランダムにグレースケール変換を行うPIL ImagePIL Image
RandomHorizontalFlipランダムに左右反転を行うPIL ImagePIL Image
RandomVerticalFlipランダムに上下反転を行うPIL ImagePIL Image
RandomAffineランダムにアフィン変換を行うPIL ImagePIL Image
RandomPerspectiveランダムに射影変換を行うPIL ImagePIL Image
RandomRotationランダムに回転を行うPIL ImagePIL Image
LinearTransformation線形変換を行うテンソルテンソル
Normalize標準化を行うテンソルテンソル
RandomErasingランダムに選択した領域を除去するテンソルテンソル
ToPILImageテンソルをPIL Image オブジェクトに変換するテンソルPIL Image
ToTensorPIL Image オブジェクトをテンソルに変換するPIL Imageテンソル
Lambdaユーザー定義の Transform を作成する場合に利用する任意のオブジェクト任意のオブジェクト