Python 3.x 我无法使用python3和hdf5storage.loadmat在TensorFloor中加载大于2GB的Matlab生成的二进制image.mat文件

Python 3.x 我无法使用python3和hdf5storage.loadmat在TensorFloor中加载大于2GB的Matlab生成的二进制image.mat文件,python-3.x,tensorflow,keras,binary-data,Python 3.x,Tensorflow,Keras,Binary Data,我正在将Matlab中生成的二进制图像矩阵导入python3脚本,以便使用Keras运行TensorFlow。图像矩阵大于2GB,为4维。我可以通过命令窗口在Matlab中加载: >> load('imageMatrix.mat') >> size(imageMatrix) ans = 200 200 1 60000 我在运行python脚本和笔记本文件时出错: TypeError:不可损坏的类型:“切片” 是否

我正在将Matlab中生成的二进制图像矩阵导入python3脚本,以便使用Keras运行TensorFlow。图像矩阵大于2GB,为4维。我可以通过命令窗口在Matlab中加载:

>> load('imageMatrix.mat')
>> size(imageMatrix)
ans =
     200         200           1       60000
我在运行python脚本和笔记本文件时出错: TypeError:不可损坏的类型:“切片”

是否有可能将大于2GB的矩阵导入带有Keras的TensorFlow

我试图使用HDF5存储将其加载到Jupyter笔记本中,但得到了错误:TypeError:unhabable type:“slice”


您是否尝试过检查loadmat函数是否返回一个带有键的字典来提取图像?我知道,当加载值表时,如果MATLAB中的表变量具有不同的名称,则可能会出现问题。在这种情况下,loadmat返回的值(在本例中为imageMatrix)将具有一个键来提取数据


如果确实发生了这种情况,则可以通过调用返回值上的.keys来打印键。

imageMatrix['imageMatrix']值的第三维似乎只有1的长度,因此这里的修复方法似乎是通过imageMatrix['imageMatrix'][:,:,0,15]对其进行索引.

您可能会遇到软件的某些限制。2个GiB文件在不久前相当少见。。。什么确切的机器32/64位,操作系统,软件版本?请包括完整的代码和回溯,加载文件>2GB可以与HDF5配合使用。我每天都这么做。嗨!谢谢你的评论。我不知道如何在这里附加文件。有什么方法可以共享我的文件或电子邮件吗?Ubuntu最近在我的工作站上更新为最新版本,它是64位的。TensorFlow和Keras是最新的稳定版本。我无法检查它们的确切版本;另一个软件正在Windows上运行。Matlab生成的二进制矩阵大小为[200 1 60000]。我可以通过命令窗口将其加载到MATLAB上。如果我尝试将其加载到mlx文件中,Matlab也会产生错误。在运行mlx文件之前,我首先加载数据。我不知道如何在TensorFlow中实现它。我试着用Jupyter笔记本和python脚本打开它。两者都产生错误加载二值图像矩阵。
import hdf5storage
#imageMatrix =hdf5storage.loadmat('imageMatrix.mat') 
hdf5storage.loadmat('imageMatrix.mat')
shapeOfImagaMatrix=np.shape(imageMatrix)
plt.imshow(imageMatrix[:,:,1,15])
plt.savefig('Visul_Image_M=80.pdf')