报错内容:
skip = skips[idx//3]
TypeError: 'list_reverseiterator' object is not subscriptable
解决办法:
这个错误是因为 skips
是一个 list_reverseiterator
迭代器对象,而不是一个列表。在这种情况下,您无法对其进行索引操作。解决这个问题的方法是将其转换为列表,例如通过使用 list()
函数:
skips = list(model.named_modules())[-2:0:-1]
skip = skips[idx//3]
或者可以在创建 skips
变量时使用列表切片来避免将其设置为迭代器对象,例如:
skips = list(model.named_modules())[-2::-3]
skip = skips[idx//3]
这将使用每3个元素中的第一个来填充 skips
列表,并确保它是一个列表对象而不是一个迭代器对象。