在跟踪木星笔记本的过程中,我在运行这些行时偶然发现了一个错误。我知道cnn_learner行没有任何错误,问题在于lr_find()部分--似乎learn.lr_find()不想返回两个值!尽管它的文档显示它返回一个元组。这是我的问题。
以下是代码行:
learn = cnn_learner(dls, resnet34, metrics=error_rate)
lr_min,lr_steep = learn.lr_find()错误说:
not enough values to unpack (expected 2, got 1)第二行。
另外,我用一个“标记”得到了这个图,我认为这是lr_min或lr_steep 这是图的值之一。
当我只运行learn.lr_find()时,即不要捕获lr_min, lr_steep中的输出;它运行得很好,但是我没有得到最小和陡峭的学习速率(这对我来说非常重要)
我阅读了lr_find所做的工作,很明显它返回了一个元组。它的文档里写着
启动模拟培训,以找到一个良好的学习率和返回建议,基于
suggest_funcs作为一个命名的元组
我复制了原来的笔记本,当我碰到这个错误时,我运行了原始笔记本,结果是一样的。我也更新笔记本,但没有改变!无论我在网上搜索过什么,都没有出现任何错误。我发现的唯一相关的事情是,lr_find()在每次运行后返回不同的学习速率结果,这是非常好的。
发布于 2021-07-18 15:46:58
我也遇到了同样的问题,我发现lr_find()输出已经更新。您可以将第二行替换为lrs = learn.lr_find(suggest_funcs=(minimum, steep, valley, slide)),然后只需将lr_min和lr_steep分别用于lrs.minimum和lrs.steep的地方进行替换,这样可以很好地解决问题。
如果你想读更多关于它,你可以看到这个职位是在快速的论坛。
https://stackoverflow.com/questions/68396513
复制相似问题