メインコンテンツへスキップ

class Image

画像をW&Bにログするためのクラスです。

method Image.__init__

__init__(
    data_or_path: 'ImageDataOrPathType',
    mode: 'str | None' = None,
    caption: 'str | None' = None,
    grouping: 'int | None' = None,
    classes: 'Classes | Sequence[dict] | None' = None,
    boxes: 'dict[str, BoundingBoxes2D] | dict[str, dict] | None' = None,
    masks: 'dict[str, ImageMask] | dict[str, dict] | None' = None,
    file_type: 'str | None' = None,
    normalize: 'bool' = True
) → None
wandb.Image オブジェクトを初期化します。 このクラスはさまざまな画像データ形式を処理し、必要に応じてピクセル値を自動的に [0, 255] の範囲に正規化して、W&B バックエンドとの互換性を確保します。
  • [0, 1] の範囲のデータは 255 倍され、uint8 に変換されます _ [-1, 1] の範囲のデータは、-1 を 0、1 を 255 に対応付けて [-1, 1] から [0, 255] に再スケーリングした後、uint8 に変換されます -1 を 0、1 を 255 に対応付けた後、uint8 に変換されます _ [-1, 1] の範囲外で [0, 255] に含まれないデータは [0, 255] にクリップされ、uint8 に変換されます (値が [0, 255] の範囲外にある場合は警告が表示されます) * すでに [0, 255] の範囲にあるデータは、変更せずに uint8 に変換されます
引数:
  • data_or_path: 画像データの NumPy array / pytorch tensor、PIL image object、または画像ファイルへのパスを受け付けます。NumPy array または pytorch tensor を指定した場合、画像データは指定したファイルタイプで保存されます。値が [0, 255] の範囲外である場合、またはすべての値が [0, 1] の範囲内である場合は、normalizeFalse に設定されていない限り、画像のピクセル値は [0, 255] の範囲に正規化されます。
    • pytorch tensor は (channel, height, width) 形式である必要があります
    • NumPy array は (height, width, channel) 形式である必要があります
  • mode: 画像の PIL mode です。一般的なものは “L”、“RGB”、“RGBA” です。
  • Full Pillow docs for more information https: //pillow.readthedocs.io/en/stable/handbook/concepts.html#modes
  • caption: 画像の表示ラベルです。
  • grouping: 画像のグループ化番号です。
  • classes: 画像のクラス情報の list で、バウンディングボックスや画像マスクのラベル付けに使用されます。
  • boxes: 画像のバウンディングボックス情報を含む辞書です。
  • see https: //docs.wandb.ai/models/ref/python/data-types/boundingboxes2d
  • masks: 画像のマスク情報を含む辞書です。
  • see https: //docs.wandb.ai/models/ref/python/data-types/imagemask
  • file_type: 画像の保存ファイルタイプです。data_or_path が画像ファイルへのパスである場合、このパラメーターは効果を持ちません。
  • normalize: True の場合、画像のピクセル値が [0, 255] の範囲内に収まるよう正規化します。正規化は、data_or_path が numpy array または pytorch tensor の場合にのみ適用されます。
例: numpy array から wandb.Image を作成します
import numpy as np
import wandb

with wandb.init() as run:
    examples = []
    for i in range(3):
         pixels = np.random.randint(low=0, high=256, size=(100, 100, 3))
         image = wandb.Image(pixels, caption=f"random field {i}")
         examples.append(image)
    run.log({"examples": examples})
PILImage から wandb.Image を作成する
import numpy as np
from PIL import Image as PILImage
import wandb

with wandb.init() as run:
    examples = []
    for i in range(3):
         pixels = np.random.randint(
             low=0, high=256, size=(100, 100, 3), dtype=np.uint8
         )
         pil_image = PILImage.fromarray(pixels, mode="RGB")
         image = wandb.Image(pil_image, caption=f"random field {i}")
         examples.append(image)
    run.log({"examples": examples})
.png (デフォルト) ではなく .jpg でログする
import numpy as np
import wandb

with wandb.init() as run:
    examples = []
    for i in range(3):
         pixels = np.random.randint(low=0, high=256, size=(100, 100, 3))
         image = wandb.Image(
             pixels, caption=f"random field {i}", file_type="jpg"
         )
         examples.append(image)
    run.log({"examples": examples})

プロパティ Image.image