Form機能とは?
IpywidgetsはJupyterのUIライブラリとして知られていますが、Google Colabではセキュリティ上の理由により現時点(2019/4/25)では使うことができません。
一方でColabにはFormという、コメントをわずかに書くだけでUIを自動生成する機能が用意されています。詳しくは、下記公式マニュアルをご覧頂ければと思いますが、コンボボックスやスライダー、日付選択ダイアログといったものが用意されています。
作図サンプルでForm機能を体感してみよう
このForm機能のインパクトを体感していただくために、matplotlibの作図支援ノートブックを公開しました(下記リンク参照)。スタイルの選択などをUIとして提供することで、改変できるパラメータをビジターにわかりやすく提示することができます。
インストーラーとしてForm機能を使う
個人的に、Form機能の重要性を感じたのはTensorflowおよびTensorflow Probability(以下、TFP)のバージョン選択UIです。Colaboratoryにインストールされているモジュールは何もしなくとも上がるため、昨日動いていたはずのコードが今日動かなくなったということが普通に起こり得ます。特に、Tensorflowは仕様が大きく異なる2.xが控えており、多くの既存コンテンツが動作しなくなることが予想されます。
そんなとき、例えばTensorflowのバージョン選択機能がUIとして用意されていると心強いものです。下記は、TFPのサンプルから抜粋したものですが、コピペ一つで実用的なバージョン選択UIをあなたのノートブックに加えることができます。
Tensorflowのバージョン選択UI
#@title Install { display-mode: "form" }
TF_Installation = 'TF2 Nightly (GPU)' #@param ['TF2 Nightly (GPU)', 'TF2 Stable (GPU)', 'TF1 Nightly (GPU)', 'TF1 Stable (GPU)','System']
if TF_Installation == 'TF2 Nightly (GPU)':
!pip install -q --upgrade tf-nightly-gpu-2.0-preview
print('Installation of `tf-nightly-gpu-2.0-preview` complete.')
elif TF_Installation == 'TF2 Stable (GPU)':
!pip install -q --upgrade tensorflow-gpu==2.0.0-alpha0
print('Installation of `tensorflow-gpu==2.0.0-alpha0` complete.')
elif TF_Installation == 'TF1 Nightly (GPU)':
!pip install -q --upgrade tf-nightly-gpu
print('Installation of `tf-nightly-gpu` complete.')
elif TF_Installation == 'TF1 Stable (GPU)':
!pip install -q --upgrade tensorflow-gpu
print('Installation of `tensorflow-gpu` complete.')
elif TF_Installation == 'System':
pass
else:
raise ValueError('Selection Error: Please select a valid '
'installation option.')
Tensorflow Probabilityのバージョン選択UI
#@title Install { display-mode: "form" }
TFP_Installation = "Nightly" #@param ["Nightly", "Stable", "System"]
if TFP_Installation == "Nightly":
!pip install -q tfp-nightly
print("Installation of `tfp-nightly` complete.")
elif TFP_Installation == "Stable":
!pip install -q --upgrade tensorflow-probability
print("Installation of `tensorflow-probability` complete.")
elif TFP_Installation == "System":
pass
else:
raise ValueError("Selection Error: Please select a valid "
"installation option.")
UIの表示例
まとめ
QittaでForm機能を取り上げた記事がなかったので寄稿してみました。この機能は、Jupyterの標準機能として取り入れるべき価値があると自分は思います。今後、Chainerのバージョン選択UIなど様々な用途に応用され、Form機能が広く認知されることを願っています。