Python:“公开”缓冲区接口是什么意思?

时间:2019-11-21 19:26:59

标签: python machine-learning protocol-buffers mnist

我正在使用后续函数导入Fashion-MNIST数据(myFile参数将由Fashion-MNIST数据替换):

import gzip
import numpy as np

def OpenImage(myFile):
    with gzip.open(myFile, "rb") as f:
        data = f.read()
        return np.frombuffer(data, dtype=np.uint8, offset=16).reshape(-1,28,28).astype(np.float32)

现在,有一件事我真的无法理解:需要给np.frombuffer一个对象,该对象公开了缓冲区接口。这就是在python文档中所说的。由f.read()返回并存储在数据中的对象因此必须是公开缓冲区接口的对象。我认为fileobjects是公开缓冲区接口的对象-难道这意味着由处理文件的方法(例如read()或write())返回的任何对象都公开了缓冲区接口吗?我的意思是,f.read()不会返回指向存储myFile内容的内存的指针吗?然后,np.frombuffer()能够获取存储在该内存中的任何内容并将其弄乱。 我想我在这里的问题还在于了解缓冲区接口到底是什么,“暴露”缓冲区接口是什么意思?

0 个答案:

没有答案