我有大量的C#代码生成的图像,我希望将它们写入NumPy格式,以便可以在Tensorflow中使用它们。我去了NumPy文档并检查了version 1.0 NPY format description,发现了这一点:
接下来的HEADER_LEN字节形成描述数组格式的标题数据。它是一个ASCII字符串,其中包含字典的Python文字表达。它以换行符(\ n)终止,并用空格(\ x20)填充,以使 len(魔术字符串)+ 2 + len(length)+ HEADER_LEN的总数被64均匀除对齐目的。
因此,我按照说明进行操作,并以mnist.npz\x_train.npy为例来验证说明。标头的外观如下:
如上所示,newline
或0x0a
的索引是0x4f
,它是从文件开始的第80个字节。 80被16整除,而不是64。
我也转到了文件末尾,并得到了最后一个字节的 index ,它是:0x2cdc64f
,即47,040,079
,因此是文件中的47,080th
字节。 47,080 - 80 (header) = 47,000 = 60,000x28x28 (data-size as determined by 'shape' and 'descr' which is unsigned 1-byte).
我丢失了某些东西还是文档不正确,应该将evenly divisible by 64
替换为evenly divisible by 16
吗?