gpt4 book ai didi

python - Python 中存在 MemoryError,但 IPython 中没有

转载 作者:行者123 更新时间:2023-11-30 09:02:05 25 4
gpt4 key购买 nike

一般来说,你能想到发生这种情况的任何原因吗(即 Python 中的 MemoryError 但 IPython 中没有(控制台 - 而不是笔记本)?)

更具体地说,我正在使用 sklearn 的 sgdclassifiermulticlassmultilabel案件。给出以下代码时会出错:

model = SGDClassifier(
loss='hinge',
penalty='l2',
n_iter=niter,
alpha=alpha,
fit_intercept=True,
n_jobs=1)

mc = OneVsRestClassifier(model)
mc.fit(X, y)

调用 mc.fit(X, y) ,出现如下错误:

 File "train12-3b.py", line 411, in buildmodel
mc.fit(X, y)
File "/usr/local/lib/python2.7/dist-packages/sklearn/multiclass.py", line 201, in fit
n_jobs=self.n_jobs)
File "/usr/local/lib/python2.7/dist-packages/sklearn/multiclass.py", line 88, in fit_ovr
Y = lb.fit_transform(y)
File "/usr/local/lib/python2.7/dist-packages/sklearn/base.py", line 408, in fit_transform
return self.fit(X, **fit_params).transform(X)
File "/usr/local/lib/python2.7/dist-packages/sklearn/preprocessing/label.py", line 272, in transform
neg_label=self.neg_label)
File "/usr/local/lib/python2.7/dist-packages/sklearn/preprocessing/label.py", line 394, in label_binarize
Y = np.zeros((len(y), len(classes)), dtype=np.int)
MemoryError

Y是一个有 600 万行的矩阵,k列,其中金色标签为 1,其余为 0(在本例中为 k = 21 ,但我想要 >2000)。 Y转换为 sklearn到密集矩阵(因此 Y = np.zeros((len(y), len(classes)), dtype=np.int) MemoryError ),即使它作为稀疏矩阵传入。

我有 60 GB 的 ram,有 21 列,最多不应该超过 8 GB(600 万 * 21 * 64),所以我很困惑。我重写了Y = np.zeros((len(y), len(classes)), dtype=np.int使用dtype = bool ,但没有运气。

有什么想法吗?

最佳答案

听起来您遇到了标签二值化器当前实现的限制:请参阅问题 #2441 。有PR #2458修复它。

请随意尝试该分支并将您的结果作为对该 PR 的评论报告。

关于python - Python 中存在 MemoryError,但 IPython 中没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20382599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com