메인 콘텐츠로 건너뛰기
GitHub 소스

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, 1]에서 [0, 255]로 재조정되며, -1은 0에, 1은 255에 매핑한 뒤 uint8로 변환됩니다 * [-1, 1] 바깥이지만 [0, 255]에도 속하지 않는 데이터는 [0, 255]로 클리핑한 뒤 uint8로 변환됩니다 (값이 [0, 255] 범위를 벗어나는 경우 경고가 발생합니다) * 이미 [0, 255] 범위에 있는 데이터는 수정 없이 uint8로 변환됩니다
Args:
  • 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/ref/python/data-types/boundingboxes2d/ 를 참조하세요.
  • masks: 이미지에 대한 마스크 정보를 담은 사전입니다.
  • see https: //docs.wandb.ai/ref/python/data-types/imagemask/ 를 참조하세요.
  • file_type: 이미지를 저장할 파일 타입입니다. data_or_path 가 이미지 파일 경로인 경우 이 매개변수는 아무런 영향을 미치지 않습니다.
  • normalize: True 인 경우, 이미지 픽셀 값을 [0, 255] 범위로 정규화합니다. 정규화는 data_or_path 가 numpy 배열 또는 pytorch 텐서일 때만 적용됩니다.
Examples: 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})

property Image.image