PyTorch 错误: lengths 数组必须按降序排列
这段错误信息的含义是:当 'enforce_sorted' 参数为 True 时,'lengths' 数组必须按降序排列。'lengths' 数组通常用于表示序列的长度,例如在使用 pack_padded_sequence 或 pack_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。
原文地址: https://www.cveoy.top/t/topic/kgqv 著作权归作者所有。请勿转载和采集!