我正在使用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)