nvidia.dali.fn.per_frame#
- nvidia.dali.fn.per_frame(__input, /, *, bytes_per_sample_hint=[0], preserve=False, replace=False, device=None, name=None)#
将输入张量标记为序列。
该算子修改输入数据的布局字符串,以表明批次包含序列。只有布局受到影响,而数据保持不变。
该算子可以用于在处理序列时提供逐帧张量参数。例如,以下代码片段展示了如何将
gaussian_blur
应用于序列批次,以便为每个序列中的每一帧使用不同的sigma
@pipeline_def def random_per_frame_blur(): video, _ = fn.readers.video_resize(sequence_length=50, ...) sigma = fn.random.uniform(range=[0.5, 5], shape=(50,)) blurred = fn.gaussian_blur(video, sigma=fn.per_frame(sigma)) return blurred
请注意,指定为逐帧参数的批次中每个张量的最外层维度必须与给定算子处理的相应序列中的帧数相匹配。例如,在提供的示例中,
video
批次中的每个序列都有 50 帧,因此sigma
的形状为(50,)
。请查阅序列处理算子的给定参数的文档,以了解它是否支持逐帧输入。
如果传递给
per-frame
算子的输入没有布局,则会设置一个新的布局,该布局以F
开头,并用*
填充以匹配输入的维度。否则,根据replace
标志,算子要么检查布局的第一个字符是否等于F
,要么将该字符替换为F
。- 支持的后端
‘cpu’
‘gpu’
- 参数:
__input¶ (TensorList) – 算子的输入。
- 关键词参数:
另请参阅