python中的内存错误(尽管计算量很小)

时间:2016-08-17 23:39:52

标签: python numpy graphlab

我正在尝试运行一个代码,使用Graphlab框架在python中使用坐标下降来预先形成套索回归。

我写的代码如下:

l1_penalty = 1.4e8
ro = []
for i in range(0,3):
    ro.append((simple_feature_matrix[:,i]*
              (output - prediction + weights[i]*[simple_feature_matrix[:,i]])).sum()
             )
    print ro
    if i == 0:
        weights[i] = ro[i]
    elif ro[i] < -l1_penalty/2.:
        weights[i] = ro[i] + l1_penalty/2
    elif -l1_penalty/2 <= ro[i] <= l1_penalty/2:
        weights[i] = 0
    elif ro[i] > l1_penalty/2:
        weights[i] = ro[i] - l1_penalty/2
    print weights
    print

outputpredictionweightssimple_feature_matrix都是numpy matrices。

我正在开发一个数据集,该数据集具有特定区域的房屋销售价格,基于某些特征,如生活区域等。

simple_feature_matrix只是销售的两个矩阵,只有两个这样的功能。
output是“价格”的矩阵。
prediction是一个矩阵,其中包含我使用函数计算的预测价格。
weights是一个矩阵,其中包含simple_feature_matrix中包含的两个要素的权重。

当我运行此代码一次时,我得到一个输出,但是,在同一个内核中第二次运行它会给我以下错误: error received on running the code a second time

<somepath>/Anaconda2/<somedirectories>/ipykernel/__main__.py:4:Depreciation Warning: using a non-integer number instead of an integer will result in an error in the future.
------------------------------------------------------------------------
Memory Error         Traceback (most recent call last)

<ipython-input-11-15979f5790d6> in <module>()
      2 ro = []
      3 for i in range(0,3):
--->  4     ro.append((simple_feature_matrix[:,i]*(output - prediction + weights[i]*[simple_feature_matrix[:,i]])).sum())
      5     print ro
      6     if i == 0:

MemoryError:

没有给出进一步的解释,只是说存在内存错误。谁能解释为什么会这样呢?

0 个答案:

没有答案