Skip to content

tamaki-lab/hydra_sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hydra_sample

実行手順

  1. python3 -m venv ~/.hydra_sample
  2. source ~/.hydra_sample/bin/activate
  3. pip install -r requirements.txt
  4. python main.py

実装方法

yamlファイルの書き方

デフォルト設定

以下のようにしてデフォルトの設定をインポート

conf/config.yaml

defaults:
  - [フォルダ名]: [yamlファイル名]
  - [フォルダ名]: [yamlファイル名]
  - _self_

その他の設定

関連したパラメータを一つのファイルやインデントに分ける

conf/model/detr_action_head.yaml

defaults:
  - default_detr

name: detr_action_head_with_objects

out_image_feat_dim: 5

losses:
  ce_threshold: 0.5
  eos_coefficient: 0.1
  ce_loss_coefficient: 1
  bbox_loss_coefficient: 3
  giou_loss_coefficient: 2

自分のコードでhydraを実装する手順

  1. ライブラリのインストール

pip install hydra-core --upgrade

  1. confディレクトリを作成
  2. デフォルトの設定を記述するconfig.yamlを作成
  3. その他の設定ファイルを作成
  • config.yamldefaults:に記述することで設定をインポートできる
  1. ライブラリをimport
import hydra
from omegaconf import DictConfig
  1. main関数にデコレータを追加

@hydra.main(version_base=None, config_path="conf", config_name="config")

  1. main関数を書き換える def main(cfg: DictConfig) -> None:

実験ごとにyamlファイルを作成する場合

例: conf/experiment/debug_ava.yaml

# @package _global_
defaults:
  - override /dataset: ava # データセットごとのデフォルトの設定

# その他の設定
run:
  name: "test"
  tag: "test"
  disable_comet: True
  only_val: False
  save_model_checkpoint: True
  save_checkpoint_dir: "./experiment_logs"
  resume_from_checkpoint: ""
  val_videomap: True
  val_framemap: True

logging:
  num_images_to_visualize: 8
  num_true_tubes_to_visualize: 3
  num_false_tubes_to_visualize: 3
  save_tube_iou_thres: 0.5
  save_made_tubes: false
  log_videomap_summary: True
  draw_no_class_pr_curve: True

実行方法

python main.py +[実験ごとのyamlファイルがあるフォルダ名]=[yamlファイル名]

例: python main.py +experiment=debug_ava

注意点

  • # @package _global_をyamlファイルの先頭に記述することで,別のディレクトリの設定を参照できる
  • override /で既にある設定を上書きできる
  • このサンプルコードでは以下の順で設定が上書きされていく
  1. config.yaml内の以下の部分
  - dataset: jhmdb21
  - model: detr_action_head
  - training: default_training
  - logging: visualization
  1. config.yaml内の以下の部分
run:
  name: "test"
  tag: "test"
  disable_comet: False
  only_val: False
  save_model_checkpoint: True
  save_checkpoint_dir: "./experiment_logs"
  resume_from_checkpoint: ""
  val_videomap: True
  val_framemap: True

training:
  num_epochs: 100
  batch_size: 4

evaluation:
  val_epochs: 5
  save_epochs: 5
  1. experimentで指定した設定

About

sample code of hydra

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages