想用siammask訓練自己的模型,又不想從頭開始訓練,希望能夠在項目組提供的SiamMask_VOT.pth的基礎上繼續訓練,網上搜了一下,似乎沒有相關教程,于是自己嘗試了一下,簡單記錄步驟如下:
1、将siammask_sharp檔案夾下的run.sh修改如下:
if [ -z "$1" ]
then
echo "Need input base model!"
echo "Usage: bash `basename "$0"` \$BASE_MODEL"
exit
fi
ROOT=`git rev-parse --show-toplevel`
export PYTHONPATH=$ROOT:$PYTHONPATH
mkdir -p logs
base=$1
python3 -u $ROOT/tools/train_siammask_refine.py \
--config=config.json -b 16 \
-j 20 --resume snapshot/SiamMask_VOT.pth \ (主要是這裡增加resume的選項)
--epochs 20 \
2>&1 | tee logs/train.log
2、在siammask_sharp檔案夾下建立檔案夾snapshot,并将SiamMask_VOT.pth拷貝進去。
3、在siammask_sharp檔案夾下修改config.json :
"train_datasets": {
"datasets": {
"coco": { #這裡的coco改為自己的資料集
"root": "../../data/coco/crop511", #這裡的coco改為自己的資料集
"anno": "../../data/coco/train2017.json", #這裡的coco改為自己的資料集
将訓練資料改為自己的資料集。
4、将datasets\siam_mask_dataset.py中的91行:
self.has_mask = self.mark in ['coco', 'ytb_vos']
中增加自己資料集的名稱,否則mask相關的loss都沒法計算
5、在siammask_sharp目錄下運作 bash run.sh --resume