# Video classification on Kinetics-600 using MoViNet-A0 backbone.
# --experiment_type=movinet_kinetics600

runtime:
  distribution_strategy: 'mirrored'
  mixed_precision_dtype: 'float32'
task:
  model:
    backbone:
      movinet:
        model_id: 'a0'
    norm_activation:
      use_sync_bn: false
    dropout_rate: 0.5
    activation: 'swish'
  train_data:
    name: kinetics600
    variant_name: rgb
    feature_shape: !!python/tuple
    - 4
    - 172
    - 172
    - 3
    temporal_stride: 5
    random_stride_range: 0
    global_batch_size: 2
    dtype: 'float32'
    shuffle_buffer_size: 32
    aug_max_area_ratio: 1.0
    aug_max_aspect_ratio: 2.0
    aug_min_area_ratio: 0.08
    aug_min_aspect_ratio: 0.5
  validation_data:
    name: kinetics600
    feature_shape: !!python/tuple
    - 4
    - 172
    - 172
    - 3
    temporal_stride: 5
    num_test_clips: 1
    num_test_crops: 1
    global_batch_size: 2
    dtype: 'float32'
    drop_remainder: true
trainer:
  optimizer_config:
    learning_rate:
      cosine:
        initial_learning_rate: 0.8
        decay_steps: 42104
    warmup:
      linear:
        warmup_steps: 1053
  train_steps: 10
  validation_steps: 10
  steps_per_loop: 500
  summary_interval: 500
  validation_interval: 500
