读取一个numpy文件后,把它转成bytes,再转回np,结果发现维度变了!!
例子:
a = np.load('xxx.npy') # (24, 768)
b = a.tobytes()
c = np.frombuffer(b).reshape(-1, 768) # (6, 768)
检查后发现是因为原始numpy的数据类型为float16,而np.frombuffer默认数据类型是np.float64。二者使用相同数据类型即可:
a = np.load('xxx.npy') # (24, 768)
b = a.tobytes()
c = np.frombuffer(b, dtype=a.dtype).reshape(-1, 768) # (24, 768)