UNet1DModel
UNet 模型最初由 Ronneberger 等人提出了,用于生物医学图像分割,但它在 🤗 Diffusers 中也很常见,因为它输出的图像与输入大小相同。它是扩散系统中最重要的组件之一,因为它促进了实际的扩散过程。🤗 Diffusers 中有几种 UNet 模型变体,具体取决于其维度数量以及是否是条件模型。这是一个一维 UNet 模型。
论文的摘要是
人们普遍认为,要成功训练深度神经网络需要数千个带注释的训练样本。在本文中,我们提出了一种网络和训练策略,它依赖于大量使用数据增强,以便更有效地使用可用的带注释样本。该架构包括用于获取上下文的收缩路径和用于实现精确定位的对称扩展路径。我们展示了此类网络可以从极少的图像中端到端训练,并且在 ISBI 神经元结构电子显微镜栈分割挑战中优于先前的最佳方法(滑动窗口卷积神经网络)。使用在透射光显微图像(相衬和 DIC)上训练的同一网络,我们在这些类别中以巨大优势赢得了 2015 年 ISBI 细胞跟踪挑战。此外,该网络速度很快。在最新的 GPU 上,512x512 图像的分割不到一秒钟。你可以从 http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net 获得完整的实现(基于 Caffe)和训练好的网络。
UNet1DModel
类 diffusers.UNet1DModel
< 源代码 >( sample_size: int = 65536 sample_rate: Optional = None in_channels: int = 2 out_channels: int = 2 extra_in_channels: int = 0 time_embedding_type: str = 'fourier' 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: Tuple = '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) — 输入样本中的通道数。 - time_embedding_type (
str
, 可选项, 默认值为"fourier"
) — 要使用的时序嵌入类型。 - freq_shift(
float
,可选,默认为0.0)—Fourier 时间嵌入的频率偏移。 - flip_sin_to_cos(
bool
,可选,默认为False
)—是否将 Fourier 时间嵌入的正弦翻转为余弦。 - block_out_channels (
Tuple[int]
,可选,默认为(32, 32, 64)
) — 块输出通道的元组。 - act_fn (
str
, 可选,默认为None
) — UNet 块中的可选激活函数。 - downsample_each_block (
int
, optional, 默认为False
) — 不采用上采样的 UNet 的实验特性。
一种 1D UNet 模型,它获取一个噪声采样和一个时间步,并返回一个采样形状的输出。
此模型继承自 ModelMixin。请查看超类文档,了解为所有模型(如下载或保存)实现的通用方法。
forward
< 源 > ( sample: 张量 timestep: 联合 return_dict: bool = True ) → UNet1DOutput 或 元组
参数
- 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 前向方法。
UNet1DOutput
类 diffusers.models.unets.unet_1d.UNet1DOutput
< 源代码 >( sample: 张量 )
UNet1DModel 的输出。