最近、データサイエンスチームが Tensorflow を使って作成した CNN の機械学習モデルを AWS Sagemaker でホスティングして推論サービスを提供するという事をやった。 今まで機械学習の勉強はそのうちやろうと思いながら、エンジニアリングの勉強ばかりやっていたが、いい機会なので Tensorflow の使い方を覚えようと思った。
どうやって勉強しようかと思っていたところConnpass のイベントから、Google がTensorflow Certificateという認定資格をやっていることを知った。
Tensorflow と CNN について基礎レベルのことができれば OK らしく、 1,2 年前は CNN が Conventional Neural Network の略だと思い込んでいたレベルの初心者である自分には 目標としてちょうどいいかなという事で受けてみることにした。
オフィシャルページによると出題範囲は
MNISTの分類の Sample Code を動かしてみたくらいの経験はあるが、 Neural Network の構造についてよくよく考えたことがあるわけではないので全部勉強しないといけない。
ご丁寧にもCoursera のコースをやっとくことをお勧めするよとオフィシャルに書いてあるので受講することにした。
ネットの記事を見ていると無料の聴講コースがあるとかいう噂もあるが、自分は以前から Corsera のアカウントを持っていたことが関係しているのかいないのか不明だが、7 日間の無料トライアルしか選ぶことができなかった。
なかなか 7 日でこなすには量が多いコースだが、このコースのハンズオンの内容はGitHubに公開されているので、 公開されている Notebook を一通り Colaboratory で試してみれば、コースを受講しなくても、そこそこ大丈夫かもしれない(自分はたまたま有休をとりまくった週にコースを始めてしまったので、7 日間で走り抜けることができてしまった)。 コースの構成がそのまま Tensorflow Certificate の出題範囲なのでおそらくこれだけやってれば試験は合格できそう。
また、Tensorflow のチュートリアルはなかなか充実しているので、出題範囲のチュートリアルを一通りやってから 試験に突撃予定。
試験を受けるためには試験環境を用意する必要がある。
手引きは 10 ページと長いが、要約すると
環境構築も Tensorflow スキルの一部だよねという考えを強く感じた。 Tensorflow のバージョンは 2020 年 9 月時点では 2.0 が指定されているが、いずれ 2.3 前提のテストにアップデートされると書いてある。 テスト環境の条件はちょくちょく変わっていきそうなので、試験を受ける直前に確認したほうがよさそう。
最後の FAQs にハードウェアの要件について触れているが、Tensorflow の実践者としてそこらへんも自分で考えてよねと、受験者にぶん投げている。
試験ではモデルのチューニングも行うようだが、地味に重要なこととして試験中は実験としてクラウドを使ったりして様々なパラメーターでモデルを作ったりしてもいいよと FAQs では言っている。 利用できる計算資源が豊富にあるなら使えるよう準備していくと良いかもしれない。
とりあえず、自分はゲーム用 PC に GTX1080 が刺さっているので、使っていない SSD をさし、Ubuntu18.04 をインストールして突撃することにした。
Ubuntu18.04 はpython3.7
がapt
で普通にインストールできるので、
今回の要件を満たすにはおそらく一番楽なはず。(最初 Ubuntu20.04 を使おうとしたが、python3.7
を自分でインストールするのが面倒でやめた)
クリーンインストール後、以下のコマンドだけで python 環境は構築できる。
sudo apt update
sudo apt install python3.7 python3-pip
GPU をアクセラレータとして使える環境の構築についてもTensorflow のドキュメントの apt を使って CUDA をインストールするに従えば案外すんなり終わった。 CUDA 周りは依存関係が面倒なので、リンク先を参照して入れておくのが無難。ちなみに Nvidia の Official のドキュメントを参考に最新版の CUDA11 を入れると Tensorflow がまだ対応していないため、CUDA を入れなおす羽目になった。 (実際はアンインストールとかして CUDA でハマると面倒なので OS からいれなおした。)
PyCharm はSnapで入れられるので苦戦する要素がない。
sudo snap install pycharm-community --classic
PyCharm の設定は 手引きに書いてある通りにやるだけなので、ここでは割愛する。
Tensorflow Certificate を受験する上での準備についてつらつらと述べてきたが、 人によっては試験環境を用意するのが一番大変かもしれない(特に GPU を使って学習できる環境を用意する場合)。
今回 Cousera のコースで Colaboratory を始めて触ったが GPU は最低でもK80
は使えるし、運がいい時はP100
を使えるので
Deep Learning の勉強だけならこれで十分すぎて驚いた。
手元にちょうどいい GPU がない場合は、CPU で Tensorflow が動く環境を整えて、試験のモデルのチューニングは Colaboratory でやって 性能が出るモデルができたら、そのパラメーターで試験環境で学習を行うとか工夫すれば、GPU を持っていない人でも Tensorflow Certificate に普通に合格できるかもしれないと感じた。
10 月ごろに一度試験を受けてみるつもりなので、受けてみてどの程度の計算機を用意していけばいいかまたポストする予定。