def default_configs(phi, batch_size=4, image_size=512, num_classes=3): h = Config() h.dtype = "float32" # backbone h.model = dict( model="EfficientNetB%d" % phi, convolution="depthwise_conv2d", dropblock=None, # dropblock=dict(keep_prob=None, # block_size=None) normalization=dict(normalization="batch_norm", momentum=0.99, epsilon=1e-3, axis=-1, trainable=True), activation=dict(activation="swish"), strides=[2, 1, 2, 2, 2, 1, 2, 1], dilation_rates=[1, 1, 1, 1, 1, 1, 1, 1], output_indices=[ -1, ], frozen_stages=[ -1, ], num_classes=num_classes) # loss h.use_sigmoid = False h.loss = dict(loss="CrossEntropy", weight=1., from_logits=True, reduction="none") h.weight_decay = 4e-5 # dataset h.num_classes = num_classes h.train = dict(dataset=dict( dataset="ShuaidaoDataset", batch_size=batch_size, dataset_dir= "/home/bail/Data/data1/Dataset/RongChuangActions/shuaidao/shuaidaoThree/train", training=True, augmentations=[ dict(Resize=dict(input_size=image_size)), # dict(RandomDistortColor=dict()), dict(RandAugment=dict(num_layers=2, magnitude=10., cutout_const=40., translate_const=100.)) ])) h.val = dict(dataset=dict( dataset="ShuaidaoDataset", batch_size=batch_size, dataset_dir= "/home/bail/Data/data1/Dataset/RongChuangActions/shuaidao/shuaidaoThree/val", training=False, augmentations=[dict(Resize=dict(input_size=image_size))])) # train h.pretrained_weights_path = "/data/bail/pretrained_weights/efficientnet-b%d.h5" % phi h.optimizer = dict(optimizer="SGD", momentum=0.9) h.lookahead = None h.learning_rate_scheduler = dict(scheduler="CosineDecay", initial_learning_rate=0.01, warmup_steps=1200, warmup_learning_rate=0.001, train_steps=32001) h.checkpoint_dir = "checkpoints/efficientnet_b%d_shuaidao" % phi h.summary_dir = "logs/efficientnet_b%d_shuaidao" % phi h.gradient_clip_norm = 0. h.log_every_n_steps = 100 h.save_ckpt_steps = 1000 h.val_every_n_steps = 1000 return h
def default_configs(name, batch_size=4, image_size=512): h = Config() h.dtype = "float32" # backbone h.model = dict( model=name, convolution="conv2d", dropblock=None, # dropblock=dict(keep_prob=None, # block_size=None) normalization=dict(normalization="batch_norm", momentum=0.99, epsilon=1e-3, axis=-1, trainable=True), activation=dict(activation="relu"), strides=[2, 1, 2, 2, 2, 1, 2, 1], dilation_rates=[1, 1, 1, 1, 1, 1, 1, 1], output_indices=[ -1, ], frozen_stages=[ -1, ], num_classes=1) # loss h.use_sigmoid = True h.loss = dict(loss="BinaryCrossEntropy", weight=1., from_logits=True, reduction="none") h.weight_decay = 4e-5 # dataset h.num_classes = 1 h.train = dict(dataset=dict( dataset="SmokingDataset", batch_size=batch_size, dataset_dir="/data/bail/smoking/train", training=True, augmentations=[ dict(Resize=dict(input_size=image_size)), # dict(RandAugment=dict(num_layers=2, # magnitude=10., # cutout_const=40., # translate_const=100.)) ])) h.val = dict( dataset=dict(dataset="SmokingDataset", batch_size=batch_size, dataset_dir="/data/bail/smoking/val", training=False, augmentations=[dict(Resize=dict(input_size=image_size))])) # train h.pretrained_weights_path = "/data/bail/pretrained_weights/efficientnet-b%d.h5" % phi h.optimizer = dict(optimizer="SGD", momentum=0.9) h.lookahead = None h.learning_rate_scheduler = dict(scheduler="CosineDecay", initial_learning_rate=0.016, warmup_steps=800, warmup_learning_rate=0.001, train_steps=40001) h.checkpoint_dir = "checkpoints/%s" % name h.summary_dir = "logs/%s" % name h.gradient_clip_norm = 0. h.log_every_n_steps = 100 h.save_ckpt_steps = 2000 h.val_every_n_steps = 2000 return h