메인 콘텐츠로 건너뛰기

클래스 Image

W&B에 이미지를 로깅하는 클래스입니다.

방법 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, 1] 범위를 벗어나지만 [0, 255] 범위에는 속하지 않는 데이터는 [0, 255]로 클리핑한 후 uint8로 변환됩니다([0, 255] 범위를 벗어난 값이 있으면 경고가 표시됨) * 이미 [0, 255] 범위에 있는 데이터는 수정 없이 uint8로 변환됩니다
매개변수:
  • data_or_path: 이미지 데이터의 NumPy 배열/pytorch 텐서, PIL 이미지 객체 또는 이미지 파일 경로를 받습니다. NumPy 배열 또는 pytorch 텐서가 제공되면 이미지 데이터는 지정한 파일 유형으로 저장됩니다. 값이 [0, 255] 범위에 없거나 모든 값이 [0, 1] 범위에 있으면 normalizeFalse로 설정되지 않은 한 이미지 픽셀 값은 [0, 255] 범위로 정규화됩니다.
    • pytorch 텐서는 (channel, height, width) 형식이어야 합니다
    • NumPy 배열은 (height, width, channel) 형식이어야 합니다
  • mode: 이미지의 PIL 모드입니다. 가장 일반적인 값은 “L”, “RGB”, “RGBA”입니다.
  • Full Pillow docs for more information https: //pillow.readthedocs.io/en/stable/handbook/concepts.html#modes
  • caption: 이미지 표시에 사용할 레이블입니다.
  • grouping: 이미지의 그룹 번호입니다.
  • classes: 이미지의 클래스 정보 목록으로, 바운딩 박스와 이미지 마스크의 레이블 지정에 사용됩니다.
  • 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 배열 또는 pytorch 텐서인 경우에만 적용됩니다.
예제: numpy 배열에서 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