昇腾社区首页
中文
注册

训练脚本执行

训练涉及“ivfsp_train_codebook.py”脚本(训练脚本位于安装目录下的“tools/train”文件夹中),注意Python版本为3.9.11。

为了用户执行方便,提供了“ivfsp_train_codebook_example.sh”样例脚本(脚本位于安装目录下的“tools/train”文件夹中),用户可在此文件上根据实际场景修改参数值,然后执行此脚本生成码本文件。

命令参考

python3 ivfsp_train_codebook.py --dim <dim> --nonzero_num <nonzero num> --nlist <centroid num> --num_iter <iteration num> --device <device id> --batch_size <batch size> --code_num <codebook batch size> --ratio <ratio> --learn_data_path <learn data file> --codebook_output_dir <codebook output dir> --train_model_dir <train model dir>

参数名称

<dim>:特征向量维度。

<nonzero num>:特征向量压缩后非零维度个数。

<centroid num>:簇聚类中心个数。与IVFSP 训练算子模型文件生成的<centroid num>保持一致。

<iteration num>:训练迭代次数参数,默认为20。迭代次数设置过大,会导致训练时长增加。

<device id>:指定deviceId对应的Device上执行训练。

<batch size>:训练时以batch size大小执行训练。与IVFSP 训练算子模型文件生成的<batch size>保持一致。

<codebook batch size>:每次最大按codebook batch size样本数量操作码本,必须为2的幂次。与IVFSP 训练算子模型文件生成的<codebook batch size>保持一致。

<ratio>:训练用原始样本的采样率,0 < ratio ≤ 1.0,默认为1.0。

<learn data file>:训练用的原始特征文件路径,支持bin、npy格式,bin存储方式为行优先,数据类型为float32。

<codebook output dir>:生成的码本文件输出到的目录,用户应该保证此目录存在,且程序的执行用户对此目录具有写权限;出于安全加固的考虑,此目录层级中不能含有软链接。

<train model dir>:IVFSP训练算子模型文件所在目录。

使用说明

  • 执行此命令,在<codebook output dir>对应的目录下生成文件codebook_<dim>_<nonzeroNum>_<nlist>.bin 和 codebook_<dim>_<nonzeroNum>_<nlist>.npy,codebook_<dim>_<nonzeroNum>_<nlist>.bin即为AscendIndexIVFSP所需使用到的码本文件。
  • 当码本文件存在时,将执行覆盖写,此种情况程序执行用户应该是文件的属主。
  • 在执行训练生成码本前,请先参考IVFSP训练算子模型文件生成,生成训练算子模型文件。