产生随机数失败的原因(为什么我使用PyTorch来生成随机数总会失败)

本文目录
- 为什么我使用PyTorch来生成随机数总会失败
- 农信忘记密码随机因子效验失败原因
- 车辆合格证生成随机数失败
- c语言产生随机不重复两位数,我为什么运行出来第一个永远是127,那里错了
- 民生银行验证随机数错误
- 长沙银行获取云盾随机数失败
- 随机因子校验失败怎么解决
- 随机接入失败的常见原因有哪些
为什么我使用PyTorch来生成随机数总会失败
明敏 发自 凹非寺
量子位 报道 | 公众号 QbitAI
到底是怎样的一个bug,能让95%的Pytorch库中招,就连特斯拉AI总监深受困扰?
还别说,这个bug虽小,但有够“狡猾”的。
这就是最近Reddit上热议的一个话题,是一位网友在使用再平常不过的Pytorch+Numpy组合时发现。
最主要的是,在代码能够跑通的情况下,它甚至还会影响模型的准确率!
除此之外,网友热议的另外一个点,竟然是:
而是它到底算不算一个bug?
这究竟是怎么一回事?
事情的起因是一位网友发现,在PyTorch中用NumPy来生成随机数时,受到数据预处理的限制,会多进程并行加载数据,但最后每个进程返回的随机数却是相同的。
他还举出例子证实了自己的说法。
如下是一个示例数据集,它会返回三个元素的随机向量。这里采用的批量大小分别为2,工作进程为4个。
然后神奇的事情发生了:每个进程返回的随机数都是一样的。
这个结果会着实让人有点一头雾水,就好像数学应用题求小明走一段路程需要花费多少时间,而你却算出来了负数。
发现了问题后,这位网友还在GitHub上下载了超过10万个PyTorch库,用同样的方法产生随机数。
结果更加令人震惊:居然有超过95%的库都受到这个问题的困扰!
这其中不乏PyTorch的官方教程和OpenAI的代码,连特斯拉AI总监Karpathy也承认自己“被坑过”!
但有一说一,这个bug想要解决也不难:只需要在每个epoch都重新设置seed,或者用python内置的随机数生成器就可以避免这个问题。
到底是不是bug?
如果这个问题已经可以解决,为什么还会引起如此大的讨论呢?
因为网友们的重点已经上升到了“哲学”层面:
这到底是不是一个bug?
在Reddit上有人认为:这不是一个bug。
虽然这个问题非常常见,但它并不算是一个bug,而是一个在调试时不可以忽略的点。
就是这个观点,激起了千层浪花,许多人都认为他忽略了问题的关键所在。
这不是产生伪随机数的问题,也不是numpy的问题,问题的核心是在于PyTorch中的DataLoader的实现
对于包含随机转换的数据加载pipeline,这意味着每个worker都将选择“相同”的转换。而现在NN中的许多数据加载pipeline,都使用某种类型的随机转换来进行数据增强,所以不重新初始化可能是一个预设。
另一位网友也表示这个bug其实是在预设程序下运行才出现的,应该向更多用户指出来。
并且95%以上的Pytorch库受此困扰,也绝不是危言耸听。
有人就分享出了自己此前的惨痛经历:
我认识到这一点是之前跑了许多进程来创建数据集时,然而发现其中一半的数据是重复的,之后花了很长的时间才发现哪里出了问题。
也有用户补充说,如果 95% 以上的用户使用时出现错误,那么代码就是错的。
顺便一提,这提供了Karpathy定律的另一个例子:即使你搞砸了一些非常基本代码,“neural nets want to work”。
你有踩过PyTorch的坑吗?
如上的bug并不是偶然,随着用PyTorch的人越来越多,被发现的bug也就越来越多,某乎上还有PyTorch的坑之总结,被浏览量高达49w。
其中从向量、函数到model.train(),无论是真bug还是自己出了bug,大家的血泪史还真的是各有千秋。
所以,关于PyTorch你可以分享的经验血泪史吗?
欢迎评论区留言讨论~
参考链接:
***隐藏网址***
***隐藏网址***
***隐藏网址***
— 完 —
农信忘记密码随机因子效验失败原因
其失败的原因可能有网络环境不稳定、系统时间不同步、缓存或权限设置错误。
1、网络环境不稳定:如果客户端或服务器的网络连接不稳定,可能会导致数据丢包或延迟,从而影响随机数或密钥的生成和传输。
2、系统时间不同步:如果客户端或服务器的系统时间不准确,可能会导致随机数或密钥的过期或失效,从而影响数据的加密和解密。
3、缓存或权限设置错误:如果客户端或服务器的缓存或权限设置错误,可能会导致随机数或密钥的读取或写入出错,从而影响数据的传输和验证。
车辆合格证生成随机数失败
互联网综合平台认证审核比对系统失败。
车辆合格证生成随机数失败,互联网综合平台认证审核比对系统失败,车主输入的车辆识别号未通过公安部证书比对库验证。
车辆合格证是汽车另一个重要的凭证,也是汽车上户时必备的证件。只有具有合格证的汽车才符合国家对机动车装备质量及有关标准的要求。
c语言产生随机不重复两位数,我为什么运行出来第一个永远是127,那里错了
for(i=0;i《N-1;i++)
{a=rand()%90+10;k=0;
for(n=0;n《i;n++)
if(a) k++;
if(k!=0) i--;}
上面第一行少产生一个随机数,应该是
for(i=0;i《N;i;++)
程序运行正常:
民生银行验证随机数错误
民生银行验证随机数错误原因有:网络连接不稳定,输入错误的数字或大小写字母,时间不准确。
1、在输入随机数时,由于输入错误的数字或大小写字母不匹配而造成了验证失败。
2、网络连接不稳定,造成实际输入的随机数与发送给服务器的随机数不一致,导致验证失败。
3、时间不准确:服务器上时间要在规定的时间输入信息错过这个时间会导致验证码和服务器不同步。
请及时联系民生银行客服咨询或前往当地银行柜台处理。
长沙银行获取云盾随机数失败
你问的是长沙银行获取云盾随机数失败是什么原因吗?原因是没安装授权。
长沙银行云盾运用了密钥分散式计算方法,并且经过了国家密码管理方面的准许,是长沙银行与CFCA联合研发推出的一款移动数字证书,拥有良好的安全性和便捷性。
长沙银行云盾使用也比较简单,在银行官网登录我的网银,根据页面提示给云盾授权,授权成功后就可以实现支付转账等功能了。
随机因子校验失败怎么解决
在使用随机因子校验的情况下,如果发生校验失败,可能是以下几个原因导致的:
1. 随机因子生成错误:首先,确保随机因子是以正确的方式生成的。这可能涉及到伪随机数生成器的使用(比如使用特定的算法生成随机数)。可以尝试使用其他随机数生成的方法或库来验证结果。
2. 数据传输错误:校验失败也可能是由于数据在传输过程中发生了错误导致的。在传输数据时,确保数据的完整性和准确性。可以使用一些校验和算法(如CRC)来验证数据的完整性,或者使用更可靠的传输方式(如使用可靠的网络协议)来避免数据传输错误。
3. 校验算法错误:检查校验算法的实现是否正确,可能是算法本身存在问题导致校验失败。可以对算法进行逐步调试,查看是否有错误的地方。
4. 秘钥错误:在进行随机数校验时,也需要使用正确的秘钥,确保校验使用的是正确的秘钥。
综上所述,解决随机因子校验失败的方法包括检查随机因子生成的方式、确保数据传输的完整性和准确性、检查校验算法的实现以及确保使用正确的秘钥。
随机接入失败的常见原因有哪些
1、WiFi本身问题,可能WiFi未正常连接,导致无法上网。
2、路由器问题,可能路由器过热或者损坏。
3、可能宽带欠费,导致无法上网。
4、WiFi名字包含中文,导致部分电脑无法连接上网。
5、电脑系统问题,可能系统出现了问题,导致连接上了WiFi却无法上网。
建议解决办法:
1、使用其他手机或设备连接WiFi试试能否上网,排除WiFi本身问题。
2、重启一下路由器试试,或者将路由器恢复一下出厂设置,然后重新拨号上网,并根据设置向导重新设置WiFi,或者更换新路由器再进行拨号连接上网。
3、联系一下宽带客服,确认宽带账号是否有异常,如欠费,充值一下宽带,然后再拨号连接试试。
4、如WiFi名字包含中文,建议修改为英文或者英文加数字的组合再进行连接。
5、如以上原因都排除,那么久很有可能是电脑系统问题了,建议恢复一下出厂设置。看看能否解决问题。
一、检查网线是否松动
对于大多数宽带用户来说,ADSL猫接无线路由器的布网方式最为普遍,当出现掉线的情况,我们首先要考虑的是线路问题。
由于电话线线路过长,接头过多,或存在一些干扰源,很可能引发掉线,还有劣质、不符合标准的网线经常会引起网络不稳定,所以当发现掉线了,要先检查一下网线接口是否松了。
如果发现网线接口完好的话,要检查一下电源信号灯的问题了。
二、电源信号灯是否恒亮
倘若电源信号灯不亮,首先要排查电源方面的问题。如是否因市电供电不稳定造成掉线,ADSLModem本身的电源是否存在问题等。
用手触摸ADSLModem外壳,感觉非常烫手,此时不妨将ADSLModem暂时关机待到冷却后再开机使用,或者把它放置到比较通风的位置,这样也可以消除掉线故障。
三、检查数据信号是否正常
如果数据信号灯不亮,则很可能是线路出现断路、短路等现象,再通过电话测试,看看线路是否正常,如不正常,可以求助ADSL服务提供商的技术人员来解决此问题。
如果数据信号灯闪烁,则很有可能是线路接触不良引起的,你必须检查一下是否使用了分机、接头是否牢固、ADSL连接线路是否太长等。如果按以上步骤检查完后,数据信号灯仍然不能恒亮,说明该故障与线路无关,继续寻找其他原因。
四、网卡信号灯是否稳定
正常情况下,计算机中的网卡通过网线与ADSLModem连接后,它的信号灯应该不停闪烁或恒亮。如果网卡信号灯出现不稳定的状态时,即不亮或不闪烁,则说明很有可能是网卡与网线的连接出现了故障。
此外,还需检查一下网卡是否松动,网卡驱动程序的安装是否正确,网卡资源是否发生冲突,网线接头是否松动。如果仍然不能恢复正常,说明该故障不是由网卡或网线引起的。
五、网络地址不能冲突
如果ADSLModem的IP地址发生了冲突,或者DNS服务器地址设置错误,也会引起ADSL掉线。
如果你是一位虚拟拨号用户,不必自行设置IP地址,只要选择自动分配就可以了。如果你使用了固定的IP地址,就必须检查该IP地址是否与同网段内的其他工作站的IP地址发生了冲突,还要检查DNS地址是否设置正确、TCP/IP参数是否发生了变化。完成这些排查工作后,如果仍然不能消除故障,你就得从拨号软件上找找原因了。
六、检查拨号软件是否正常工作
首先用鼠标双击系统桌面中的拨号程序,执行宽带拨号连接操作,要是发现在拨号过程中系统出现“无法连接”的错误提示时,可以单击提示窗口中的“重试”按钮,正常情况下可以重新拨号3到5次就能解决问题了。
要是重新拨号3到5次后还无法成功连接的话,我们可以考虑将宽带“猫”电源关闭一段时间然后再打开,并使用Ping命令测试宽带“猫”的IP地址,要是能Ping通宽带“猫”的IP地址的话再进行重新拨号操作,相信这样多半能解决问题了。
倘若还是无法成功进行拨号,不妨将计算机系统重新启动一下,然后再进行反复拨号;要是这样的努力不能解决问题的话,那很有可能是电信机房的数据机将用户帐号锁定起来了,这个时候我们只能联系电信工作人员帮忙解锁了。
如果在没有修改TCP/IP参数的情况下,能够正常上网,那么现在不妨将TCP/IP协议删除,然后重新安装并正确设置,这样或许能够解决你的掉线故障。
七、负载过大
负载过大也是致使宽带掉线的原因之一,如我们经常使用的BT,如宽带共享网络中有些人正在进行BT下载,很可能出现负载过大的情况,使路由器掉线,这种情况多出现在学生宿舍或小型办公网络中。

更多文章:
blast premier春季赛(csgo战队vitality有谁)
2026年9月7日 21:50
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20



