python申请超大矩阵_python – numpy:计算大型矩阵的x.T * x

这可能不是你正在寻找的答案,但加速它的一种方法是使用gpu而不是你的cpu.如果你有一个相当强大的显卡,它会在任何一天都超过你的CPU,即使你的系统调整得很好.

为了与numpy很好地集成,你可以使用theano(如果你的显卡是由nvidia制作的).以下代码中的计算在几秒钟内为我运行(尽管我有一个非常强大的图形卡):

$THEANO_FLAGS=device=gpu0 python

Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)

[GCC 4.4.3] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import theano

Using gpu device 0: GeForce GTX 480

>>> from theano import tensor as T

>>> import numpy

>>> x = numpy.ones((200000, 1000), dtype=numpy.float32)

>>> m = T.matrix()

>>> mTm = T.dot(m.T, m)

>>> f = theano.function([m], mTm)

>>> f(x)

array([[ 200000., 200000., 200000., ..., 200000., 200000., 200000.],

[ 200000., 200000., 200000., ..., 200000., 200000., 200000.],

[ 200000., 200000., 200000., ..., 200000., 200000., 200000.],

...,

[ 200000., 200000., 200000., ..., 200000., 200000., 200000.],

[ 200000., 200000., 200000., ..., 200000., 200000., 200000.],

[ 200000., 200000., 200000., ..., 200000., 200000., 200000.]], dtype=float32)

>>> r = f(x)

>>> r.shape

(1000, 1000)

我打算等待多长时间>>> numpy.dot(x.T,x)采取比较的方式,但我感到无聊……

你也可以尝试PyCuda或PyOpenCL(如果你没有nvidia显卡),虽然我不知道他们的numpy支持是否如此简单.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值