2022年10月27日木曜日

ColabでPG教育を行う際のちょっとしたポイント

Google Colaboratory(以下,Colab)はBYOD環境でプログラミング教育を行うのに最適で,環境設定をする必要がないのでありがたい.とくに本学iTLはマジのBOYD(MacでもWindowsでもLinuxでもなんでもいい……そこそこの性能を持つものであれば)と言っているので,どんな環境でも同一のプログラミング教育環境を提供できる点でとても助かっている.

ところが,Colabを使ったプログラミング教育でしばしば問題になるのが,データファイルへのアクセスである.Colabではバックエンドに当てがわれるランタイムが毎回異なるものであるので,ランタイム側に永続的なデータを保存する術がない.そこで,Google Driveをいちいちマウントしなければならないのだが,それがいつもトラブルの種になっている.

データファイルへのアクセスは,1. Google Drive をマウントする,2. Drive 上のファイルへのパスを調べ,そこにアクセスする(ファイル右のケバブメニューで「パスをコピー」して貼り付ける)ようなプログラムを書く必要があるが,これが学生ごとに違うので,いつもエラーの原因になる.学生の環境設定によるのか,Google Driveのマウントの時点で「マウントできませーん」というエラーが報告されることもしばしば.

そこでJupyter Notebookをサーバに仕込めば問題解決?(次図)と思いきや,こちらは学生ごとにポートを開けなければならないという,また違った問題が発生した.

ところが,今回,PyTorch 使ったAIのサンプルプログラム見てたら,目から鱗の解があって「ユーレカ!なるほどその手があったか」とたいへん参考になったので,備忘録としてまとめておきたい.

その手順とは次のようなものである(次のコードは,サンプルプログラムのノートに,飯尾が手を加えたものである).

なるほど必要なファイルは毎回ダウンロードして,特定の箇所に決め打ちで置いてやればいいのか.ダウンロードするコード部分まで含めてプログラムを配布すれば,データファイルのパスも固定されるし,プログラム全体も同一化できる.なるほどなあ.賢い人は,きちんと考えるものだと感心した.

共有フォルダをマウントさせるという手もありそうだけれど,共有フォルダの設定が,またややこしいんだよなぁ……

0 件のコメント:

コメントを投稿