一个围绕numpy的包装器,它执行延迟计算以优化链式矩阵乘法

lazynump的Python项目详细描述


Build Statuscodecov

懒散的

对numpy的延迟计算包装器

得到了什么?

  • 通过将其他数组的值保留在内存中并解决使计算量最小化的关联问题,链式矩阵乘法将最小化。
    • 每个矩阵只保留一个副本[正在进行内存优化]
  • 允许在不计算整个矩阵的情况下返回部分矩阵[进行中]

如果您有三个具有如下维度的矩阵,有两种方法可以进行矩阵乘法以找到答案:

或者:

[1]需要1000 * 1 * 1000运算来计算A * B加上1000 * 1000 * 1000运算来计算(A * B) * C。计算A * B * C的总和等于1000^3 + 1000^2

[2]需要1 * 1000 * 1000运算来计算B * C加上1000 * 1 * 1000运算来计算A * (B * C)。计算A * B * C的总和等于1000^2 + 1000^2,这意味着最佳乘法顺序将快~500。

如果你运行the simple example,你会看到一个显著的加速。在我的电脑上,只有三个矩阵运算,速度提高了50倍。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在reducer中迭代自定义可写组件时出现java问题   属性文件中属性的java命名约定   任务链关闭的java Executor服务   java从Eclipse中的字段生成多个构造函数   java通过继承读取Json   java在不知道密钥的情况下解析json   java camel cxf如何在电子邮件中发送soap请求响应   java程序似乎跳过了if语句的一部分,在移回正确位置之前先移到else语句   测试简单的Java加密/解密inputFileName不存在   java从Jenkins REST API获取所有作业的所有构建的构建细节   java基本包装器和静态“类型”类对象   在WebSphere8.5上部署java代码   java对象相等(对象引用“=”)   java MongoDB整型字段到枚举的转换   每次我重新导入gradle时,IntelliJ都会不断重置Java设置   类型使用键或索引从Java中的数据类型检索值   在Java的列表接口中需要listIterator()和iterator()是什么?