-
Notifications
You must be signed in to change notification settings - Fork 96
Expand file tree
/
Copy pathbit.py
More file actions
89 lines (79 loc) * 2.89 KB
/
bit.py
File metadata and controls
89 lines (79 loc) * 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/env python
# Bian Hua Jian Ce Mo Xing BITXun Lian Shi Li Jiao Ben
# Zhi Xing Ci Jiao Ben Qian ,Qing Que Ren Yi Zheng Que An Zhuang PaddleRSKu
import paddlers as pdrs
from paddlers import transforms as T
# Shu Ju Ji Cun Fang Mu Lu
DATA_DIR = './data/airchange/'
# Xun Lian Ji `file_list`Wen Jian Lu Jing
TRAIN_FILE_LIST_PATH = './data/airchange/train.txt'
# Yan Zheng Ji `file_list`Wen Jian Lu Jing
EVAL_FILE_LIST_PATH = './data/airchange/eval.txt'
# Shi Yan Mu Lu ,Bao Cun Shu Chu De Mo Xing Quan Zhong He Jie Guo
EXP_DIR = './output/bit/'
# Xia Zai He Jie Ya AirChangeShu Ju Ji
pdrs.utils.download_and_decompress(
'https://paddlers.bj.bcebos.com/datasets/airchange.zip', path='./data/')
# Ding Yi Xun Lian He Yan Zheng Shi Shi Yong De Shu Ju Bian Huan (Shu Ju Zeng Qiang , Yu Chu Li Deng )
# Shi Yong ComposeZu He Duo Chong Bian Huan Fang Shi . ComposeZhong Bao Han De Bian Huan Jiang An Shun Xu Chuan Xing Zhi Xing
# APIShuo Ming :https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/apis/data.md
train_transforms = [
# Sui Ji Cai Jian
T.RandomCrop(
# Cai Jian Qu Yu Jiang Bei Suo Fang Dao 256x256
crop_size=256,
# Cai Jian Qu Yu De Heng Zong Bi Zai 0.5-2Zhi Jian Bian Dong
aspect_ratio=[0.5, 2.0],
# Cai Jian Qu Yu Xiang Dui Yuan Shi Ying Xiang Chang Kuan Bi Li Zai Yi Ding Fan Wei Nei Bian Dong ,Zui Xiao Bu Di Yu Yuan Shi Chang Kuan De 1/5
scaling=[0.2, 1.0]),
# Yi 50%De Gai Lu Shi Shi Sui Ji Shui Ping Fan Zhuan
T.RandomHorizontalFlip(prob=0.5),
# Jiang Shu Ju Gui Yi Hua Dao [-1,1]
T.Normalize(
mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
]
eval_transforms = [
# Yan Zheng Jie Duan Yu Xun Lian Jie Duan De Shu Ju Gui Yi Hua Fang Shi Bi Xu Xiang Tong
T.Normalize(
mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]),
T.ReloadMask()
]
# Fen Bie Gou Jian Xun Lian He Yan Zheng Suo Yong De Shu Ju Ji
train_dataset = pdrs.datasets.CDDataset(
data_dir=DATA_DIR,
file_list=TRAIN_FILE_LIST_PATH,
label_list=None,
transforms=train_transforms,
num_workers=0,
shuffle=True,
with_seg_labels=False,
binarize_labels=True)
eval_dataset = pdrs.datasets.CDDataset(
data_dir=DATA_DIR,
file_list=EVAL_FILE_LIST_PATH,
label_list=None,
transforms=eval_transforms,
num_workers=0,
shuffle=False,
with_seg_labels=False,
binarize_labels=True)
# Shi Yong Mo Ren Can Shu Gou Jian BITMo Xing
# Mu Qian Yi Zhi Chi De Mo Xing Qing Can Kao :https://github.com/PaddlePaddle/PaddleRS/blob/develop/docs/intro/model_zoo.md
# Mo Xing Shu Ru Can Shu Qing Can Kao :https://github.com/PaddlePaddle/PaddleRS/blob/develop/paddlers/tasks/change_detector.py
model = pdrs.tasks.cd.BIT()
# Zhi Xing Mo Xing Xun Lian
model.train(
num_epochs=10,
train_dataset=train_dataset,
train_batch_size=4,
eval_dataset=eval_dataset,
save_interval_epochs=3,
# Mei Duo Shao Ci Die Dai Ji Lu Yi Ci Ri Zhi
log_interval_steps=50,
save_dir=EXP_DIR,
# Shi Fou Shi Yong early stoppingCe Lue ,Dang Jing Du Bu Zai Gai Shan Shi Ti Qian Zhong Zhi Xun Lian
early_stop=False,
# Shi Fou Qi Yong VisualDLRi Zhi Gong Neng
use_vdl=True,
# Zhi Ding Cong Mou Ge Jian Cha Dian Ji Xu Xun Lian
resume_checkpoint=None)