AI开发平台MODELARTS-Open-Clip基于Lite Server适配PyTorch NPU训练指导:Step8 精度评估
Step8 精度评估
- 关闭数据集shuffle,保证训练数据一致。
修改/home/ma-user/open_clip/src/training/data.py文件,搜索get_wds_dataset函数,将两处shuffle关闭,修改代码如下。
if is_train: if not resampled: print("dataset unshuffled.") #pipeline.extend([ # detshuffle2( # bufsize=_SHARD_SHUFFLE_SIZE, # initial=_SHARD_SHUFFLE_INITIAL, # seed=args.seed, # epoch=shared_epoch, # ), # wds.split_by_node, # wds.split_by_worker, #]) print("wds unshuffled.") pipeline.extend([ # at this point, we have an iterator over the shards assigned to each worker at each node tarfile_to_samples_nothrow, # wds.tarfile_to_samples(handler=log_and_continue), # wds.shuffle( # bufsize=_SAMPLE_SHUFFLE_SIZE, # initial=_SAMPLE_SHUFFLE_INITIAL, # ), ])
- 重新训练1个epoch。脚本参考内容如下。
cd /home/ma-user/open_clip python -m training.main \ --save-frequency 1 \ --zeroshot-frequency 1 \ --report-to tensorboard \ --train-data '/home/ma-user/open_clip/mscoco/{00000..00059}.tar' \ --train-num-samples 102400 \ --dataset-type webdataset \ --warmup 10000 \ --batch-size=256 \ --lr=1e-3 \ --wd=0.1 \ --epochs=1 \ --workers=8 \ --model ViT-B-32
训练完成后,tensorboard统计的记录会保存在/home/ma-user/open_clip/logs/xxx-model_ViT-B-32-lr_0.001-b_32-j_8-p_amp/tensorboard目录下。
- 通过docker cp命令将容器内tensorboard子目录复制到宿主机 /home下。
- 在宿主机上安装tensorboard并启动。
pip install tensorboard #安装 tensorboard --logdir=/home/tensorboard --bind_all #启动
启动成功后如下图所示。
图2 启动tensorboard - 在浏览器访问http://{宿主机ip}:6006/。将train/loss导出为json,和GPU训练下导出的文件比较。