python - 在Windows上定义巨大的矩阵返回memoryerror

时间:2014-05-21 10:39:37

标签: python numpy

我正在使用numpy定义大的多维矩阵。我在我的64位ubuntu 13.10系统上使用4GB RAM运行我的代码没有任何问题但是当我尝试在安装了32位numpy的4GB RAM的64位Windows 7系统上运行它时会返回MemoryError。 如果我这样声明我的矩阵:

K = 20
N = 8100
D = 600

A = np.random.random((D, N, K))
B = np.random.random((N, K))

我没有收到任何错误。但问题是,当我在类的构造函数中声明它时,我正在使用它返回一个内存错误。这些是构造函数:

class CLASS1:
    def __init__(self, w, h, n, c1, c2):
        self.width = w
        self.height = h
        self.N = n
        self.Z = np.eye(self.N)
        self.Y = np.zeros((self.N, self.N))
        self.L = np.zeros((self.N, self.N))
        self.C1 = c1
        self.C2 = c2

此类中的错误来自我正在初始化Y矩阵的行。 和

class CLASS2:
    def __init__(self, BM, W, K, N, D):
        self.betaMask = BM==0
        self.W = W
        self.K = K
        self.N = N
        self.D = D
        self.s = np.random.random((D, N, K))
        self.beta = np.random.random((N, K))

这里它在我正在定义矩阵的行上返回一个错误。我使用它们:

C1 = 1
C2 = 0
width = 300
height = 200

K = 20
N = 8100
D = 600

L = CLASS1(width, height, N, C1, C2)
A = CLASS2(mask, W, K, N, D)

0 个答案:

没有答案