Help us understand the problem. What is going on with this article?

コメント一行でUI生成。Form機能を使った一歩先のGoogle Colab活用術

More than 1 year has passed since last update.

Form機能とは?

IpywidgetsはJupyterのUIライブラリとして知られていますが、Google Colabではセキュリティ上の理由により現時点(2019/4/25)では使うことができません。

Add Ipywidgets support #60

一方でColabにはFormという、コメントをわずかに書くだけでUIを自動生成する機能が用意されています。詳しくは、下記公式マニュアルをご覧頂ければと思いますが、コンボボックスやスライダー、日付選択ダイアログといったものが用意されています。

Forms - Colaboratory

作図サンプルでForm機能を体感してみよう

このForm機能のインパクトを体感していただくために、matplotlibの作図支援ノートブックを公開しました(下記リンク参照)。スタイルの選択などをUIとして提供することで、改変できるパラメータをビジターにわかりやすく提示することができます。

Chart builder for matplotlib.ipynb

image.png

image.png

インストーラーとして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の表示例

image.png

まとめ

QittaでForm機能を取り上げた記事がなかったので寄稿してみました。この機能は、Jupyterの標準機能として取り入れるべき価値があると自分は思います。今後、Chainerのバージョン選択UIなど様々な用途に応用され、Form機能が広く認知されることを願っています。

stakemura
サービス運用からエッジ組み込みまで、機械学習なんでも屋です。特にCG/CV系のR&D、低レイヤ(C++/GPGPU)、データ分析(Python)、DevOps/MLOps設計の話題が多めです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away