Machine learning 使用Fortran导入MNIST数据集

Machine learning 使用Fortran导入MNIST数据集,machine-learning,fortran,dataset,gfortran,mnist,Machine Learning,Fortran,Dataset,Gfortran,Mnist,Linux/GFortran问题 我确切地知道我的问题是什么,但我不知道如何解决它 我想将MNIST数据集图像和标签导入到Fortran数组中,以便使用Fortran处理机器学习算法。我已经用Python完成了这项工作,但是我不能用Fortran复制读取数据文件 数据集文件和文件布局说明位于: 我正在努力解决的两个问题是 1) 文件中的数据以无符号字节存储。我在Fortran中找不到类似的数据类型。我使用integer(kind=1)成功读取前4个字节,这构成了文件幻数,但我担心将其中一个字节

Linux/GFortran问题

我确切地知道我的问题是什么,但我不知道如何解决它

我想将MNIST数据集图像和标签导入到Fortran数组中,以便使用Fortran处理机器学习算法。我已经用Python完成了这项工作,但是我不能用Fortran复制读取数据文件

数据集文件和文件布局说明位于:

我正在努力解决的两个问题是

1) 文件中的数据以无符号字节存储。我在Fortran中找不到类似的数据类型。我使用integer(kind=1)成功读取前4个字节,这构成了文件幻数,但我担心将其中一个字节的值错误地读取到有符号整数(kind=1)数据类型中

2) 数据以Big-Endian格式存储。因此,当我将存储在4字节整数中的图像、行和列的数量读入我的小Endian机器时,我收到了明显的GobbleDeBook。理想情况下,我希望能够在编辑描述符中指定要从文件读取的变量的结尾。这可能吗

任何帮助都将不胜感激


对于第一个问题,您可以从模块中读取相应整数中的“原样”数据。之后如何处理这些数据还有待确定。对于endianness,一个不可移植的解决方案是使用说明符。感谢您的回复。我正在考虑编写一个小型Python过滤器,将数据转换为Fortran友好的格式,以解决这个问题。还可以编写一个C例程,在将控制权交给Fortran代码之前读取数据并将其转换为C带符号整数。谢谢Pierre。我也会调查的。在Python或C中,我认为最好的解决方案(对我来说)是首先将数据转换成Fortran友好的格式,然后将其读入我的Fortran程序。这将使我的Fortran代码尽可能干净和可移植。