defto_fvecs(filename, data): withopen(filename, 'wb') as fp: for y in data: # 将 y.size(dim) 以 C++ 的 unsigned int 的形式写入二进制文件 d = struct.pack('I', y.size) fp.write(d) for x in y: # 将 x(vector)以 C++ 的 float 的形式写入二进制文件 a = struct.pack('f', x) fp.write(a)
defto_ivecs(filename, data): withopen(filename, 'wb') as fp: for y in data: d = struct.pack('I', y.size) fp.write(d) for x in y: a = struct.pack('I', x) fp.write(a)
print("dataset['train'] to "+ str(os.path.join(dataset_dir, dataname+'_base.fvecs'))) print("dataset['test'] to "+ str(os.path.join(dataset_dir, dataname+'_query.fvecs'))) print("dataset['neighbors'] to "+ str(os.path.join(dataset_dir, dataname+'_groundtruth.ivecs')))
if __name__ == "__main__": parser = argparse.ArgumentParser(description="Run the script with file path input") parser.add_argument("--file_path", type=str, required=True, help="Path to the input file") args = parser.parse_args()