Buckets:
UNet1DModel
UNet 모델은 Ronneberger et al.에 의해 바이오메디컬 이미지 분할을 위해 처음 소개되었지만, 입력과 동일한 크기의 이미지를 출력하기 때문에 🤗 Diffusers에서도 널리 사용됩니다. 실제 확산(diffusion) 과정을 담당하는 핵심 구성 요소 중 하나입니다. 🤗 Diffusers에는 차원 수와 조건부 모델 여부(conditional model)에 따라 UNet 모델의 여러 변형(variant)이 있습니다. 여기서는 1D UNet 모델입니다.
해당 논문의 초록은 다음과 같습니다:
딥 네트워크의 성공적인 학습에는 수천 개의 라벨이 붙은 학습 샘플이 필요하다는 데에 큰 합의가 있습니다. 본 논문에서는 데이터 증강을 강하게 활용하여 사용 가능한 라벨 샘플을 더 효율적으로 사용하는 네트워크와 학습 전략을 제시합니다. 아키텍처는 컨텍스트를 포착하기 위한 수축 경로와 정확한 위치 파악을 가능하게 하는 대칭적인 확장 경로로 구성됩니다. 이러한 네트워크가 매우 적은 이미지로 끝에서 끝까지(end-to-end) 학습될 수 있으며, 전자 현미경 스택의 신경 구조 분할을 위한 ISBI 챌린지에서 이전의 최선 방법(슬라이딩 윈도우 컨볼루션 네트워크)보다 우수한 성능을 보임을 보여줍니다. 동일한 네트워크를 투과광 현미경 이미지(위상 대비 및 DIC)로 학습하여, 해당 카테고리에서 ISBI 세포 추적 챌린지 2015를 큰 격차로 우승했습니다. 또한, 이 네트워크는 빠릅니다. 최신 GPU에서 512x512 이미지의 분할은 1초 미만으로 수행됩니다. 전체 구현(Caffe 기반)과 학습된 네트워크는 http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net에서 사용할 수 있습니다.
UNet1DModel[[diffusers.UNet1DModel]]
diffusers.UNet1DModel[[diffusers.UNet1DModel]]
diffusers.UNet1DModel(sample_size: int = 65536, sample_rate: int | None = None, in_channels: int = 2, out_channels: int = 2, extra_in_channels: int = 0, time_embedding_type: str = 'fourier', time_embedding_dim: int | None = None, flip_sin_to_cos: bool = True, use_timestep_embedding: bool = False, freq_shift: float = 0.0, down_block_types: tuple = ('DownBlock1DNoSkip', 'DownBlock1D', 'AttnDownBlock1D'), up_block_types: tuple = ('AttnUpBlock1D', 'UpBlock1D', 'UpBlock1DNoSkip'), mid_block_type: str = 'UNetMidBlock1D', out_block_type: str = None, block_out_channels: tuple = (32, 32, 64), act_fn: str = None, norm_num_groups: int = 8, layers_per_block: int = 1, downsample_each_block: bool = False)
매개변수:
sample_size (int, 선택 사항) : 샘플의 기본 길이. 런타임에서 적응 가능해야 합니다.
in_channels (int, 선택 사항, 기본값 2) : 입력 샘플의 채널 수.
out_channels (int, 선택 사항, 기본값 2) : 출력의 채널 수.
extra_in_channels (int, 선택 사항, 기본값 0) : 첫 번째 다운 블록의 입력에 추가할 채널 수. 모델이 처음 설계된 것보다 입력 데이터의 채널 수가 많은 경우에 유용합니다.
time_embedding_type (str, 선택 사항, 기본값 "fourier") : 사용할 시간 임베딩의 유형.
freq_shift (float, 선택 사항, 기본값 0.0) : Fourier 시간 임베딩의 주파수 시프트입니다.
flip_sin_to_cos (bool, 선택 사항, 기본값 False) : Fourier 시간 임베딩에서 sin을 cos로 전환할지 여부입니다.
down_block_types (tuple[str], 선택 사항, 기본값 ("DownBlock1DNoSkip", "DownBlock1D", "AttnDownBlock1D")) : 다운샘플 블록 유형 튜플.
up_block_types (tuple[str], 선택 사항, 기본값은 ("AttnUpBlock1D", "UpBlock1D", "UpBlock1DNoSkip")) : 업샘플 블록 유형 튜플.
block_out_channels (tuple[int], 선택 사항, 기본값 (32, 32, 64)) : 블록 출력 채널의 튜플.
mid_block_type (str, 선택 사항, 기본값 "UNetMidBlock1D") : UNet 중간에 사용할 블록 유형입니다.
out_block_type (str, 선택 사항, 기본값 None) : UNet의 선택적 출력 처리 블록입니다.
act_fn (str, 선택 사항, 기본값 None) : UNet 블록에서 사용할 선택적 활성화 함수입니다.
norm_num_groups (int, 선택 사항, 기본값 8) : 정규화에 사용할 그룹 수입니다.
layers_per_block (int, 선택 사항, 기본값 1) : 블록당 레이어 수.
downsample_each_block (int, 선택 사항, 기본값 False) : 업샘플링 없이 UNet을 사용하는 실험적 기능입니다.
노이즈 샘플과 타임스텝을 입력받아 샘플 모양의 출력을 반환하는 1D UNet 모델입니다.
이 모델은 ModelMixin에서 상속됩니다. 모든 모델에 대해 구현된 일반적 메서드(다운로드 또는 저장 등)에 대해서는 상위 클래스 문서를 확인하세요.
forward[[diffusers.UNet1DModel.forward]]
forward(sample: Tensor, timestep: typing.Union[torch.Tensor, float, int], return_dict: bool = True)
매개변수:
sample (torch.Tensor) : 다음 형태 (batch_size, num_channels, sample_size)를 가진 노이즈 입력 텐서.
timestep (torch.Tensor 또는 float 또는 int) : 입력을 디노이즈할 타임스텝 수.
return_dict (bool, 선택 사항, 기본값 True) : 일반 튜플 대신 UNet1DOutput을 반환할지 여부.
반환값: UNet1DOutput 또는 tuple
return_dict가 True이면 UNet1DOutput이 반환되고, 그렇지 않으면 첫 번째 요소가 샘플 텐서인 tuple이 반환됩니다.
UNet1DModel의 forward 메서드입니다.
UNet1DOutput[[diffusers.models.unets.unet_1d.UNet1DOutput]]
diffusers.models.unets.unet_1d.UNet1DOutput[[diffusers.models.unets.unet_1d.UNet1DOutput]]
diffusers.models.unets.unet_1d.UNet1DOutput(sample: Tensor)
매개변수:
sample (torch.Tensor, shape (batch_size, num_channels, sample_size)) : 모델의 마지막 레이어에서 출력된 hidden states입니다.
UNet1DModel의 출력입니다.
Xet Storage Details
- Size:
- 6.93 kB
- Xet hash:
- a6f040e53662b16f0d35574dd0114f255673cea1c62b2f73e458f6ee5beecb9f
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.