这段错误信息的含义是:当 'enforce_sorted' 参数为 True 时,'lengths' 数组必须按降序排列。'lengths' 数组通常用于表示序列的长度,例如在使用 pack_padded_sequencepack_sequence 函数时。当 'enforce_sorted' 为 True 时,这些函数要求 'lengths' 数组中的元素按降序排列,以确保 ONNX 可导性。

如果不需要 ONNX 可导性,可以将 'enforce_sorted' 参数设置为 False,以避免此要求。这将允许 'lengths' 数组以任何顺序排列。

例如,以下代码将引发错误:

lengths = [3, 2, 4]
packed_sequence = pack_padded_sequence(sequences, lengths, enforce_sorted=True)

要解决此问题,可以将 'lengths' 数组按降序排列:

lengths = [4, 3, 2]
packed_sequence = pack_padded_sequence(sequences, lengths, enforce_sorted=True)

或者,可以将 'enforce_sorted' 设置为 False:

lengths = [3, 2, 4]
packed_sequence = pack_padded_sequence(sequences, lengths, enforce_sorted=False)

请注意,将 'enforce_sorted' 设置为 False 将导致生成的模型无法导出为 ONNX。

PyTorch 错误: lengths 数组必须按降序排列

原文地址: https://www.cveoy.top/t/topic/kgqv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录