为什么会有这么多重复的数字出现呢

为什么第一个图的列表print的结果会有这么多重复的,而第二张图却没有呢?

img

img

你的水仙花数,重复出现了,因为你没校验d,当d大于0时是四位数,不应该输出水仙花数了

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7804752
  • 这篇博客你也可以参考下:关于某些时候print函数不会立即打印的解决办法
  • 除此之外, 这篇博客: 模型参数无法更新的原因:训练、预测中加入了print函数中的 意想不到的错误:排查print 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    灵感的出现来源于之前使用了一版别人家的bert,发现这个bert有的时候能够预测出不一样的标签,但是当比较train()或者eval()的结果的时候,发现中间的结果一样。
    比较别人家的bert和我方bert的各种精细的结构之后,终于
    去除掉所有的print,只在预测之中加上print之后,大功告成,程序可以正常运行!!!
    在pytorch训练和预测过程中,网络层,包括最终的结果,尽量不要有任何的输出,否则就会可能会发生模型预测都是一个标签的现象!!!
    猜想:错误发生的原因可能在于模型运行的结果应该是在gpu上面,而输出最终的过程在cpu上面,cpu与gpu有着矛盾与冲突,所以中途输出相应参数会导致最终预测结果出错,都是一个标签


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^