Python/Numpy 内存错误

2024-03-27

基本上,当我尝试在 numpy 矩阵上执行代数运算时,我在 python 中遇到内存错误。变量u,是一个大的双精度矩阵(在失败的情况下,它是一个 288x288x156 双精度矩阵。我只在这个巨大的情况下得到这个错误,但我可以在其他大矩阵上执行此操作,只是没有这么大)。这是Python错误:

 Traceback (most recent call last):

 File "S:\3D_Simulation_Data\Patient SPM Segmentation\20 pc
t perim erosion flattop\SwSim.py", line 121, in __init__
   self.mainSimLoop()

 File "S:\3D_Simulation_Data\Patient SPM Segmentation\20 pc
t perim erosion flattop\SwSim.py", line 309, in mainSimLoop
   u = solver.solve_cg(u,b,tensors,param,fdHold,resid) # Solve the left hand si
de of the equation Au=b with conjugate gradient method to approximate u

 File "S:\3D_Simulation_Data\Patient SPM Segmentation\20 pc
t perim erosion flattop\conjugate_getb.py", line 47, in solv
e_cg

u = u + alpha*p

MemoryError

u = u + alpha*p是失败的代码行。

alpha只是一个双倍,而u and r是上面描述的大矩阵(两者大小相同)。

我对内存错误了解不多,尤其是在 Python 中。任何解决此问题的见解/技巧将不胜感激!

Thanks


重写为

p *= alpha
u += p

这将使用更少的内存。然而p = p*alpha为结果分配一个全新的矩阵p*alpha然后丢弃旧的p; p*= alpha就地做同样的事情。

一般来说,对于大矩阵,尝试使用op=任务。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python/Numpy 内存错误 的相关文章

随机推荐

  • 将 CSV 文件转换为 Java - 向后复制

    我之前问过一个关于在java中将CSV文件转换为二维数组的问题 我完全重写了我的代码 几乎要重新编写了 我现在遇到的唯一问题是它正在向后打印 换句话说 列打印在行应该打印的位置 反之亦然 这是我的代码 int board new int 2
  • D 中是否有相当于 C++ 的 Future/Promise ?

    D 世界中是否存在 C 世界中的未来 承诺等价物 当然有标准并行度 http dlang org phobos std parallelism html但它并不完全具有承诺 未来组合的功能 没有相当于获取未来或设置结果或异常的功能 您也不能
  • Pytorch:了解 nn.Module 类内部如何工作

    一般来说 一个nn Module可以由子类继承 如下所示 def init weights m if type m nn Linear torch nn init xavier uniform m weight class LinearRe
  • 如何使用 jQuery 从 iframe 调用父页面上的函数?

    我有一个上传表单 可以发布到隐藏的 iframe 我试图从 iframe 调用父页面上的函数 但收到错误 top stopUpload 不是函数 这样做的正确方法是什么 父页面 document ready function documen
  • 检测两个图像之间的像素碰撞/重叠

    我有两个 UIImageView 其中包含具有某些透明区域的图像 有什么方法可以检查两个图像之间的非透明区域是否发生碰撞 Thanks 更新 这就是我到目前为止所拥有的 不幸的是它仍然不起作用 但我不明白为什么 if CGRectInter
  • 在什么情况下会调用类型到自身的转换运算符?

    考虑一个类型bar其中具有用户定义的类型引用转换运算符bar struct bar operator bar operator const bar const 何时应用这些转换 此外 如果这些运算符是deleted 这两个功能有什么有趣的用
  • 释放宝石时 rake 释放挂起

    我正在尝试将我的第一个宝石发布到 Ruby Gems 该宝石在本地运行良好 我使用以下方式释放它 rake release 这在控制台中给了我这个 example gem 0 0 3 built to pkg example gem 0 0
  • 命名空间、argparse 和用法

    这确实是几个问题 argparse 使用名称空间而不是字典有原因吗 假设我有一个班级 init self init method args The init method参数告诉 init function 我想用哪种方式初始化类 而arg
  • 用 java 中的 Apache Tar 保存结构的目录

    我怎么能够tar一个目录并使用以下命令保留目录结构org apache commons compress图书馆 通过我在下面所做的事情 我只是得到一个所有东西都被压平的包裹 Thanks 这是我一直在尝试的方法 但它不起作用 public
  • 为什么 macOS 会杀死由 clang 创建的静态可执行文件?

    我有一个用于 m1 arm cpu 的最小 c 程序 返回 42 void start asm mov x0 42 asm mov x16 1 asm svc 0x80 此代码在告诉 clang 使用 start 符号后进行编译并返回正确的
  • 如何使用带有面部特征的 openCV 训练支持向量机(svm)分类器?

    我想使用svm分类器进行面部表情检测 我知道 opencv 有一个 svm api 但我不知道训练分类器的输入应该是什么 到目前为止我读了很多论文 他们都说在面部特征检测之后训练分类器 到目前为止我所做的 人脸检测 每帧计算16个面部点 下
  • 在 d3 中堆叠矩阵而不重新映射到 json

    The docs https github com d3 d3 shape blob master README md stacks对于d3的堆叠功能d3 stack显示一个包含对象数组的示例 每个 json 对象代表 x 轴测量的点的集合
  • FOPEN_MAX 和 _SC_OPEN_MAX

    在我的系统 Ubuntu 13 10 上 值为FOPEN MAX为 16 值为 POSIX OPEN MAX是 20 其值为 SC OPEN MAX 我已经通过了sysconf 是 4096 我知道 POSIX OPEN MAX是最小值OP
  • 如何将减少实现的序列转回惰性向量序列

    当我将 221 行 csv 文件 使用 clojure csv 解析 运行到此函数中时 defn test key inclusion Accepts csv data param and an index a second csv dat
  • iOS 上的 Cordova 状态栏黑底黑字

    我有一个 Cordova iPhone 应用程序 它使用状态栏插件 状态栏的背景设置为黑色 文本为白色 但自从将插件从版本 0 1 3 升级到 0 1 8 后 文本现在是黑色的 是否可以恢复旧的行为 或者指定文本颜色 调试信息 使用 Cor
  • 有人可以向我解释逻辑回归中成本函数和梯度下降方程之间的区别吗?

    我正在学习 Coursera 上关于逻辑回归的 ML 课程 以及 Manning 的 机器学习实践 一书 我正在尝试通过用 Python 实现所有内容来学习 我无法理解成本函数和梯度之间的区别 网上有一些例子 人们计算成本函数 但有些地方他
  • 使用导入模块时 tsconfig.js 排除属性不起作用

    我现在很抓狂 为什么我的打字稿编译 tsc 总是尝试编译node modules文件 即使我已经指定排除这个文件夹 tl dr 这是因为我有导入 但我不知道如何从编译中排除导入 我正在使用 Visual Studio Code 但直接从命令
  • C++ 中未设置布尔值的默认值? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 C bool var 默认为 true https stackoverflow com questions 2043823 why is a c bool var true by defaul
  • URL 构造函数不适用于某些字符

    我正在尝试使用 URLRequest 从我的应用程序调用 php 脚本 Url 路径在 String Variable 中生成query对于请求我将其转换为这样 guard let url URL string query else pri
  • Python/Numpy 内存错误

    基本上 当我尝试在 numpy 矩阵上执行代数运算时 我在 python 中遇到内存错误 变量u 是一个大的双精度矩阵 在失败的情况下 它是一个 288x288x156 双精度矩阵 我只在这个巨大的情况下得到这个错误 但我可以在其他大矩阵上