Python无法访问我的ram的多个GB?
我写一个机器学习项目是为了好玩,但我遇到了一个有趣的错误,我似乎无法修复。我正在使用Sklearn(LinearSVC、train_test_split)、numpy和其他一些小型库,如collections 该项目是一个评论分类器——你输入一条评论,它就会输出一个分类。我遇到的问题是,在执行train_test_split以检查分类器精度时,特别是在调用model.fit时,内存错误(无法为具有形状(738411947)和数据类型float64的数组分配673.MiB) 我的程序找到了11947个独特的单词,我有一个很大的训练样本(14769),但我从来没有遇到过内存不足的问题。问题是,我的内存没有用完。我有32GB,但在放弃之前,程序使用的内存不足1gbPython无法访问我的ram的多个GB?,python,numpy,scikit-learn,out-of-memory,Python,Numpy,Scikit Learn,Out Of Memory,我写一个机器学习项目是为了好玩,但我遇到了一个有趣的错误,我似乎无法修复。我正在使用Sklearn(LinearSVC、train_test_split)、numpy和其他一些小型库,如collections 该项目是一个评论分类器——你输入一条评论,它就会输出一个分类。我遇到的问题是,在执行train_test_split以检查分类器精度时,特别是在调用model.fit时,内存错误(无法为具有形状(738411947)和数据类型float64的数组分配673.MiB) 我的程序找到了1194
是否有明显的遗漏?您可能正在运行32位版本的Python。在终端中,
python-c“import sys;print(sys.maxsize)”
显示了什么?2147483647-我假设这是位?是的,您运行的是32位版本的python。这实际上是CPython实现中类型为Py_ssize\u t
的变量的最大大小。基本上,它是可以用作索引的最大大小。在32位版本中,这将是2**(32-1)=2147483648。一个32位进程可以容纳的最大地址空间量是
2**32`,这取决于您的操作系统,但它可以低至1-2 gigs(例如Windows),因为操作系统可以降低限制。如果您需要的不仅仅是这些,您必须使用64位版本的PythonJust完成了尝试-它现在可以工作了。非常感谢。如果这能解决您的问题,我建议您发布答案或删除问题。