采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
电脑是64位的系统,前面几节课dtype时有的是64位,有的是32位的,像到了这节课这里默认就是32位导致prod出来的结果是32位情况下的运算结果2004189184
说明你使用的是 Windows 系统。
dtype 默认的整型数据,对应的数据类型是 C 语言的 long,而在 Windows 下,long 默认是 32 位的(即使你的 Windows 操作系统是 64 位的)。
关于这个问题,可以参考这个 issue:https://github.com/numpy/numpy/issues/9464
微软在 Windows 下的数据长度说明可以参考这里:https://docs.microsoft.com/en-us/cpp/c-language/storage-of-basic-types?redirectedfrom=MSDN&view=msvc-170
如果你需要顾及跨平台(尤其是Linux/Unix/MacOS 和 Windows 之间的兼容),不建议使用 default 的数据类型,而是显式声明清楚数据类型,比如这个问答里这个同学的写法:https://coding.imooc.com/learn/questiondetail/Dg8m5XZqrAzYWa4B.html
继续加油!:)
意思是说后续用到的机器学习的算法用windows系统要尽可能都声明成64位的才能最大程度避免出错是这样吗
非常感谢!
如果使用的是整数的话,是的。但其实在机器学习中,99% 的计算是浮点运算,所以这一点至少在这个课程的范围里,没有那么重要:)
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.4k 19
3.4k 17
2.9k 15
1.6k 15
1.4k 14