Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deepsupervision #1

Merged
merged 7 commits into from
Aug 1, 2019
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Try fishnet, add some callbacks. Try to train with SGD
  • Loading branch information
ngxbac committed Aug 1, 2019
commit 011623814615813b5ce01a6be7363c02c0a42d4b
2 changes: 1 addition & 1 deletion bin/train.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ RUN_CONFIG=config.yml

for channels in [1,2,3,4,5]; do
for fold in 0; do
LOGDIR=/raid/bac/kaggle/logs/recursion_cell/test/190730/cutmix/fold_$fold/resnet50/
LOGDIR=/raid/bac/kaggle/logs/recursion_cell/test/190730/different_schedulers/fold_$fold/se_resnext50_32x4d/
catalyst-dl run \
--config=./configs/${RUN_CONFIG} \
--logdir=$LOGDIR \
Expand Down
10 changes: 5 additions & 5 deletions bin/train_ds.sh
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
#!/usr/bin/env bash

export CUDA_VISIBLE_DEVICES=2,3
export CUDA_VISIBLE_DEVICES=3
RUN_CONFIG=config_ds.yml


for channels in [1,2,3,4,5]; do
for channels in [1,2,3,4,5,6]; do
for fold in 0; do
LOGDIR=/raid/bac/kaggle/logs/recursion_cell/test/190729/fold_$fold/DSSENet/
LOGDIR=/raid/bac/kaggle/logs/recursion_cell/test/190731/fold_$fold/DSInceptionV3/
catalyst-dl run \
--config=./configs/${RUN_CONFIG} \
--logdir=$LOGDIR \
--out_dir=$LOGDIR:str \
--stages/data_params/channels=$channels:list \
--stages/data_params/train_csv=./csv/train_$fold.csv:str \
--stages/data_params/valid_csv=./csv/valid_$fold.csv:str \
--stages/data_params/train_csv=./csv/kfold5/train_$fold.csv:str \
--stages/data_params/valid_csv=./csv/kfold5/valid_$fold.csv:str \
--verbose
done
done
105 changes: 85 additions & 20 deletions configs/config.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
model_params:
model: ResNet50CutMix
model: cell_senet
n_channels: 5
num_classes: 1108
pretrained: "/raid/bac/pretrained_models/pytorch/ResNet50_CutMix_v2.pth"
model_name: "se_resnext50_32x4d"
# pretrained: "/raid/bac/pretrained_models/pytorch/fishnet150_ckpt.tar"

args:
expdir: "src"
Expand All @@ -19,8 +20,8 @@ stages:
minimize_metric: False

criterion_params:
# criterion: CrossEntropyLoss
criterion: LabelSmoothingCrossEntropy
criterion: CrossEntropyLoss
# criterion: LabelSmoothingCrossEntropy

data_params:
batch_size: 64
Expand All @@ -29,17 +30,17 @@ stages:
# drop_last: True

image_size: &image_size 512
train_csv: "./csv/train_0.csv"
valid_csv: "./csv/valid_0.csv"
train_csv: "./csv/kfold5/train_0.csv"
valid_csv: "./csv/kfold5/valid_0.csv"
root: "/raid/data/kaggle/recursion-cellular-image-classification/"
sites: [1]
channels: [1, 2, 3, 4, 5]

stage0:

optimizer_params:
optimizer: Nadam
lr: 0.001
optimizer: SGD
lr: 0.01

scheduler_params:
scheduler: MultiStepLR
Expand All @@ -49,10 +50,47 @@ stages:
state_params:
num_epochs: 2

callbacks_params:
loss:
callback: CriterionCallback
# callback: LabelSmoothCriterionCallback
optimizer:
callback: OptimizerCallback
accumulation_steps: 4
accuracy:
callback: AccuracyCallback
accuracy_args: [1]
scheduler:
callback: SchedulerCallback
reduce_metric: *reduce_metric
saver:
callback: CheckpointCallback
slack:
callback: SlackLogger
channel: logs_cell
url: "https://hooks.slack.com/services/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"

stage1:

optimizer_params:
optimizer: SGD
lr: 0.01

scheduler_params:
scheduler: CyclicLRFix
base_lr: 0.01
max_lr: 0.03
step_size_up: 250
step_size_down: 300
mode: "exp_range"
# cycle_momentum: False

state_params:
num_epochs: 30

callbacks_params: &callback_params
loss:
# callback: CriterionCallback
callback: LabelSmoothCriterionCallback
callback: CriterionCallback
optimizer:
callback: OptimizerCallback
accumulation_steps: 2
Expand All @@ -62,24 +100,51 @@ stages:
scheduler:
callback: SchedulerCallback
reduce_metric: *reduce_metric
mode: "batch"
saver:
callback: CheckpointCallback
slack:
callback: SlackLogger
channel: logs_cell
url: "https://hooks.slack.com/services/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"

stage1:
stage2:

optimizer_params:
optimizer: SGD
lr: 0.002

scheduler_params:
scheduler: CyclicLRFix
base_lr: 0.002
max_lr: 0.005
step_size_up: 200
step_size_down: 258
mode: "exp_range"
# cycle_momentum: False

state_params:
num_epochs: 10

callbacks_params: *callback_params


stage3:

optimizer_params:
optimizer: Nadam
lr: 0.0001
optimizer: SGD
lr: 0.0004

scheduler_params:
scheduler: OneCycleLR
num_steps: 50
lr_range: [0.0005, 0.00001]
# lr_range: [0.0015, 0.00003]
warmup_steps: 5
momentum_range: [0.85, 0.95]
scheduler: CyclicLRFix
base_lr: 0.0004
max_lr: 0.0008
step_size_up: 200
step_size_down: 258
mode: "exp_range"
# cycle_momentum: False

state_params:
num_epochs: 50
num_epochs: 10

callbacks_params: *callback_params
133 changes: 88 additions & 45 deletions configs/config_ds.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
model_params:
model: DSSENet
pretrained: True
n_channels: 5
model: DSInceptionV3
n_channels: 6
num_classes: 1108

args:
Expand All @@ -24,80 +23,124 @@ stages:

data_params:
batch_size: 64
num_workers: 16
num_workers: 8
drop_last: False
# drop_last: True

image_size: &image_size 512
train_csv: "./csv/train_0.csv"
valid_csv: "./csv/valid_0.csv"
train_csv: "./csv/kfold5/train_0.csv"
valid_csv: "./csv/kfold5/valid_0.csv"
root: "/raid/data/kaggle/recursion-cellular-image-classification/"
sites: [1]
channels: [1, 2, 3, 4]
channels: [1, 2, 3, 4, 5, 6]

# stage0:
#
# optimizer_params:
# optimizer: Adam
# lr: 0.01
#
# scheduler_params:
# scheduler: MultiStepLR
# milestones: [10]
# gamma: 0.3
#
# state_params:
# num_epochs: 2
#
# callbacks_params:
# loss:
# #callback: CriterionCallbac
# callback: LabelSmoothCriterionCallback
# optimizer:
# callback: OptimizerCallback
# accumulation_steps: 2
# accuracy:
# callback: AccuracyCallback
# accuracy_args: [1]
# scheduler:
# callback: SchedulerCallback
# reduce_metric: *reduce_metric
# saver:
# callback: CheckpointCallback
# slack:
# callback: SlackLogger
# channel: logs_cell
# url: "https://hooks.slack.com/services/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"

stage0:
stage1:

optimizer_params:
optimizer: Nadam
lr: 0.001
optimizer: SGD
lr: 0.01

scheduler_params:
scheduler: MultiStepLR
milestones: [10]
gamma: 0.3
scheduler: CyclicLRFix
base_lr: 0.01
max_lr: 0.03
step_size_up: 450
mode: "exp_range"
# cycle_momentum: False

state_params:
num_epochs: 2
num_epochs: 30

callbacks_params: &callback_params
loss:
callback: DSCriterionCallback
# loss_weights: [0.001, 0.005, 0.01, 0.02, 0.02, 0.1, 1.0] # For DS InceptionV3
loss_weights: [0.02, 0.02, 0.1, 1.0]
loss_weights: [0.001, 0.005, 0.01, 0.02, 0.02, 0.1, 1.0]
optimizer:
callback: OptimizerCallback
accumulation_steps: 2
accuracy:
callback: DSAccuracyCallback
# logit_names: ["m2", "m4", "m6", "m8", "m9", "m10", "final"] # For DS InceptionV3
logit_names: ["m1", "m2", "m3", "final"]
logit_names: ["m2", "m4", "m6", "m8", "m9", "m10", "final"]
scheduler:
callback: SchedulerCallback
reduce_metric: *reduce_metric
mode: "batch"
saver:
callback: CheckpointCallback
slack:
callback: SlackLogger
channel: logs_cell
url: "https://hooks.slack.com/services/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"

stage1:
stage2:

optimizer_params:
optimizer: Nadam
lr: 0.0001
optimizer: SGD
lr: 0.002

scheduler_params:
scheduler: OneCycleLR
num_steps: 50
lr_range: [0.0005, 0.00001]
# lr_range: [0.0015, 0.00003]
warmup_steps: 5
momentum_range: [0.85, 0.95]
scheduler: CyclicLRFix
base_lr: 0.002
max_lr: 0.004
step_size_up: 450
mode: "exp_range"
# cycle_momentum: False

state_params:
num_epochs: 50
num_epochs: 10

callbacks_params:
loss:
callback: DSCriterionCallback
# loss_weights: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
loss_weights: [0.02, 0.02, 0.1, 1.0]
optimizer:
callback: OptimizerCallback
accumulation_steps: 2
accuracy:
callback: DSAccuracyCallback
# logit_names: ["m2", "m4", "m6", "m8", "m9", "m10", "final"]
logit_names: ["m1", "m2", "m3", "final"]
scheduler:
callback: SchedulerCallback
reduce_metric: *reduce_metric
saver:
callback: CheckpointCallback
callbacks_params: *callback_params


stage3:

optimizer_params:
optimizer: SGD
lr: 0.0004

scheduler_params:
scheduler: CyclicLRFix
base_lr: 0.0004
max_lr: 0.0008
step_size_up: 450
mode: "exp_range"
# cycle_momentum: False

state_params:
num_epochs: 10

callbacks_params: *callback_params
Loading