Google Colabで変数をフォームでいじれるようにする
Google Colabでフォーム(form)というpythonの変数を簡単に調節できるような機能があったので、使ってみた。
使い方
コードセルを選択した状態で、
右クリックして、フォームの追加をクリック。(挿入 > フォームの項目追加 でもok)、
こんな感じで、タイトルが自動生成される。#@title
とあるように、#から始まっており、pythonでのコメント形式なので実行時には影響がない。
もう一度右クリックしてフォームの追加すると、新しいフォーム フィールドの追加というのが出てくるので、作りたいフォームフィールのタイプ、変数名など設定する。
保存ボタンを押すと、変数とその初期値が生成される。そのあとに、コメントとして #@param
と続き、こちらも実行時には影響がない。
生成したフィールドを書き換えてみると、すぐに左側のコードの方も書き換えた値に変更される。
コードセル選択で右クリック > フォーム > コードを非表示 でコード部分の表示、非表示を切り替えられる。 フォーム部分も同様に表示、非表示を切り替えられる。
フォームの値を変更した時に、自動で変数値変更
下の画像のように、変数のコードセルを実行した後、その変数を違うコードセルで使うことがよくある。
変数の値をフォームで変える時、変数のコードセルを再実行する必要がある。実行を忘れると、前回の変数の状態のままその変数を使うことになってしまう。 変数の値をいじるたびに実行する必要があるので、変数の値を変更したら自動でコードの実行をして変数の値を更新してくれる機能がある。
#@title デフォルトのタイトル テキスト{ run: "auto" }
のようにtitleのところに{ run: "auto" }
を付け加えると、フォームで変数更新した時に自動で再実行してくれる。
フォームフィールドタイプ使用例
フォームフィールドタイプは4つある。
- dropdown
- input
- slider
- markdown
dropdown
プルダウン項目を設定して、作成するとその項目を選べるdropdownができる。
入力を許可することで{allow-input: true}
が生成され、自分で値を入れられるようになる。
input
入力欄に入力することで、値を変更する。 タイプはboolean, date, integer, number, raw, stringから選べる。
slider
スライダーが表示されるもの。スライダーを動かす、数字を入力、上下ボタンをクリックで数字を増やしたり減らしたりできる。最小値、最大値、ステップ幅を決めれる。
markdown
#@markdown ~~aaa~~
のように#@markdown
の後に、マークダウンを書くと、マークダウンの表示結果が右側に出る。
type : rawについて
入力したものがそのまま変数に入る。
最後に
Google Colabでフォームを使ってみました。 機械学習でパラメータを調節することがよくあるので、その時にフォームを使うことで、 調節が楽になるのではないかと思います。 とても便利なので、使ってみてはどうですか。