Shortcuts

torch.fx.experimental.symbolic_shapes.definitely_true

torch.fx.experimental.symbolic_shapes.definitely_true(a)[源代码]

仅当我们能够确定 a 为 True 时返回 True,在此过程中可能会引入一个保护。如果 a 依赖于某些未支持的 SymInt,我们可能会返回 False,即使存在某个 SymInt 的值可能导致表达式返回 True。

何时适合使用definitely_true?首先,如果你可以使用更高级别的组合器,如parallel_or/parallel_and,优先使用这些组合器,它们绝对是安全的(除了短路情况)。其次,如果程序在definitely_true始终返回False的情况下行为等效,则可以使用它(parallel_or/parallel_and是这种模式的例子,除了短路情况)。最后,即使程序的行为不等效,只要变化是语义保留的,也可以使用它。如果程序在更多情况下出错(但其他情况下行为相同),或者如果它以不重要方式改变某些数量(例如,步幅通常属于这种情况),则可以认为是语义保留的。

优云智算