我的数据存储在 MATLAB 中的类中,其中包含大型数组,但希望在 python 中使用这些数据来训练机器学习。据我所知,当在两者之间移动数据时,值会被传输,因此数组会被复制到内存中。然后将数组转换为 numpy 数组,在内存中创建进一步的副本。如何尽可能避免创建如此多的数据副本。
我还没有实现Python代码,因为如果我不能轻松地传输它那就毫无意义了。
有第三方解决方案在 MATLAB/Python 或本机方法之间共享内存(如文档所示):
https://uk.mathworks.com/help/matlab/matlab_external/passing-data-to-python.html
将矩阵和多维数组传递给Python
Python 语言提供了一种用于访问内存缓冲区(例如存储在 MATLAB 数组中的数据)的协议。 MATLAB 为 MATLAB 数组实现了此 Python 缓冲区协议,以便您可以直接从 Python 代码读取 MATLAB 数组,与 MATLAB 在同一进程中运行,无需复制数据。