Pythonプログラミング(ステップ1・準備・Google Colab)
このステップの目標
- Python学習のために使用する、Google Colabの基本操作を理解する。
- 各自のパソコンからも操作できるようにする。
1. 準備と接続
まず、東北大学が発行しているGoogleアカウント(各自の全学メールID 名.姓.記号@dc.tohoku.ac.jp
と、メール用のパスワード)を確認しておきます。
個人でGoogleアカウントを持っている場合は、そちらを使っても構いません。
次に、Google Colaboratoryのウェブサイトhttps://colab.research.google.com/にアクセスします。
「お使いのブラウザではこのサイトは動作しない可能性があります。サポートされているブラウザをお使いください。」と表示されたら、違うブラウザで試してみてください。 Google Chromeの使用をお薦めします。
画面右上の
ボタンを押して、Googleアカウント(全学メールID)を使ってログインします。以下のような画面が出たら、とりあえず「キャンセル」しておきます。
これで使い始めるための準備が整いました。以下、基本的な注意点をまず把握しておきましょう。
- 90分間何も操作しないと、自動的に切断されます。その際、ノートブック(プログラムやテキスト)は保存されていますが、計算結果や作業用データは失われます。
- ノートブック(プログラムやテキスト)はGoogle Driveの専用の領域に保存されるようになっています。
- 一方、作業用のデータは、ランタイム(後で説明)を再起動する度に、消えてしまいます。必要なデータは、Googe Driveに移動したり、各自のPCにダウンロードして保存しておく必要があります。
簡単にまとめると、Google Colabは、使うときだけクラウド上に生成される仮想的なパソコン環境、になります。
Google Colabの基本用語
- ノートブック
- Pythonプログラムを入力・実行したり、テキストやコメントを記入したりするための、「ワープロ」の一種。ファイルとして保存した場合の拡張子は
.ipynb
。 - セル
- ノートブックの中の入力の単位。ノートブックはコードセル(Pythonコード用)とテキストセルで構成される。
- Markdown(マークダウン)
- テキストセルを記述する際に、見出しや文字飾りなどの書式を整えるための記法。
- ランタイム
- コードセルのPythonコードを解釈・実行するためにサーバー側で動作しているプログラム。中断したり、再起動したりすることができる。
- Googe Drive(ドライブ)
- Googleアカウントに紐付いているクラウド型ストレージサービス。仮想的な外付けハードディスクのようなもの。
- GPU/TPU
- Pythonコードの処理を高速化するための専用のハードウェア。ランタイムのタイプから「使わない(None)」「GPU」「TPU」を選択できる。機械学習の課題に取り組む際はGPUを選択するとよい。
2. Google Colabの画面構成
Google Colabは、Pythonプログラムを作成し、実行することができるテキストエディタ兼ワープロ、です。 画面構成とそれぞれの役割を以下に示します。
まず、以下を試しておきましょう:
- 3分間の解説動画 Colabのご紹介(英語)を視聴してください。英語がわからなくても、画面だけ眺めておけば大丈夫です。
- 画面上部のメニュ(ファイル、編集、表示、挿入、ランタイム、ツール、ヘルプ)を全てクリックし、どんなメニュー項目があるか、確認します。
- 画面左側の区画のタブ(目次、コードスニペット、ファイル)を順にクリックし、どんな表示に変わるかを確認します。
3. ノートブックの作成とコードの実行
セルの中でコードや文章をコピーする場合は Ctrl-C (macOSの場合は command-C)、 ペーストは Ctrl-V (macOSは command-V)を押します。
Ctrl-C とは Ctrl(Control)キーを押したままの状態で、Cを押す操作です。
「編集」メニューやマウスの右クリックはセルの内容(テキストやコード)ではなく、セルそのものに対する操作に用います。
メニューからファイルを開いて、ノートブックを新規作成を選びます。
すると、以下のような新しいタブが開きます:
Shift+Enterキーを押すと、選択中のセルのコードを直ちに実行することができます。
編集用の小区画をセルと呼び、Pythonコードを記入する区画のことをコードセルと言います。コードセルの左側には「再生ボタン」のようなアイコンがあり、そこをクリックすると、セル内のコードが実行されます。
実行中に停止したい場合は、「停止ボタン」に変化しているアイコンをクリックします。
機械学習などの課題で、計算にGPUを用いる場合は、メニューからランタイムを開き、ランタイムのタイプを変更を選択します。 そして、ハードウェアアクセラレータの欄をGPU に変更します。この変更を加えると、ランタイムが再起動され、作業途中のファイルが削除されますの注意してください。
その他の設定
「ツール」メニューの「設定」(または、画面右上の歯車マーク)で全体的な設定を変更することができます。
- 「エディタ」の「インデント」を2から4に変更しておくのをお薦めします。プログラムの構造が見やすくなります。
- 「エディタ」の「フォント」を大きくすると、小さな画面でも視認性が改善されるかもしれません。
- 「サイト」でテーマで、画面の色合いを調整できます。
練習:曜日計算のコードの実行
コードセルに以下のコードを打ち込んで(ペーストして)、実行してみなさい。 実行すると、西暦年、月、日を尋ねられるので、入力欄に数値(半角)を入れて、Enterキーを押すこと。
dows = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"] year = int( input("Year ?: ") ) month = int ( input("Month ?: ") ) day = int( input("Day ?: ") ) if month==1 or month==2: year2 = year -1 month2 = month + 12 else: year2 = year month2 = month dayofweek = (year2 + year2//4 - year2//100 + year2//400 + (13*month2+8)//5 + day) % 7 print("{0}/{1}/{2} is {3}.".format(year,month,day,dows[dayofweek]))
4. ファイルの管理
開いているノートブックはひとつのファイルとして管理・保存されます。画面上の Untitled0.ipynb
のところをマウスでクリックして、新しい名前に変更することができます。
データは自動的に保存されるようになっていますが、ファイルメニューの保存も使えます。
作業用のファイル領域は、ランタイムが停止すると、全て消えてしまいます。
使用中のノートブック毎に仮想的な実行環境(ランタイム)が生成され、作業用のファイルスペースが設けられます。それを操作するには、左側の区画のファイルタブを開いてください(フォルダーのアイコンをクリック)。 そこには、あらかじめ、機械学習のサンプル用のデータが保存されています。
このファイルスペースにファイルをアップロードすると、Colab上のPythonコードで読み込んで処理することができます。 また、Pythonコードが生成したデータは、ここから自分のPCにダウンロードすることもできます。
この区画の上でマウスを右クリックすると、ファイルのアップロード、ダウンロード、フォルダの作成等の選択肢が現れます。
「Google Driveをマウント」をクリックすると、Google Driveの内容を作業ファイルスペースからアクセスできるようになります。その際、安全のため、確認が求められます。
一方、ノートブックの内容は、拡張子 ipynb のついたファイルとして、Google Driveの My Drive/Google Notebooks
の中に保存されるようになっています。
Google Drive内のファイルは、ランタイムが停止しても、消えることはありません。
過去に使ったノートブックは、ファイルメニューからノートブックを開く...を選んで、開くことができます。
練習:ファイルのアップロード・ダウンロード
画像ファイルswan.pngをGoogle Colabにアップロードし、下記のPythonコードで処理すると、foggy_swan.png
という画像ファイルが作成される。
それをダウンロードして、処理前(swan.png)と処理後(foggy_swan.png)の画像を比較してみなさい。
from skimage import io, filters image = io.imread('swan.png') foggy_swan = filters.gaussian(image,sigma=5) io.imshow(foggy_swan) io.show() io.imsave('foggy_swan.png', foggy_swan)
画像ファイル:swan.png
ヒント
作業の流れ:
- 画像ファイルswan.pngをパソコンにダウンロードする。
- Google Colabの画面左側の「ファイル」の区画の「アップロード」をクリック(あるいは右クリックで「アップロード」を選び)、swan.pngをアップロードする。
- コードセルに上記のプログラムを入力(コピー&ペースト)し、実行する
- 左の「ファイル」の区画にコードセルにfoggy_swan.pngというファイルで新たにできるので、それを右クリックして「ダウンロード」する
5. パッケージの管理
コードセルの先頭に !
マークを書くと、その行はLinuxのコマンドと見なされます。例えば、
!ls
を実行すると、作業ディレクトリのファイル一覧が表示されます。
Google Colabには、一般的なPython用のライブラリがすでにインストールされていますが、もし追加インストールが必要な場合は、コードセルで
!pip3 install パッケージ名
のようにpip3
コマンドを実行してください。
演習等でこうした操作が必要になった場合は、その都度、具体的にコマンド名を指示します。
6. Pythonコードのファイル保存
レポート課題等の際、ノートブック上で作成したPythonコードをファイルとして提出するよう求められることがあります。 そのような場合は、以下のような手順で作業します:
Windowsの場合
- 「メモ帳」(Notepad)というアプリを開きます。
- 「無題」というウィンドウが開くので、Google ColabからそこにPythonのコードをコピー&ペーストします。
- メモ帳のファイルメニューから「名前を付けて保存」を選択します。
- 「ファイルの種類」は「すべてのファイル」、「文字コード」は「UTF-8」を選択します。
- ファイル名として、指定の名前(例えば
report-1234.py
のような)を入力し、保存します。 ファイル名の末尾(拡張子)が.txt
になっていたら、そこを削除して、.py
で終わるようにします。 - Google ClassroomやISTUで、保存したファイル(
report-1234.py
)を提出(アップロードや添付)します。
Safariを使ってテキストエディットに日本語の混じったコードをペーストすると文字化けするようです。 テキストエディットにペーストする際、「編集」メニューで「ペーストしてスタイルを合わせる」を選ぶか、 Chrome等の他のブラウザを使用するようにしてください。
テキストエディットを使う場合は、「環境設定」の中のオプションの「スマート引用符」「スマートダッシュ記号」のチェックを外しておくようにしましょう。 さもないと、自動的に 'こんな風に’ ペアになった引用符に変換されてしまいます。
macOSの場合
- 「テキストエディット」(TextEdit)というアプリを開きます
- 「名称未設定」というウィンドウが開くので、Google ColabからそこにPythonのコードをコピー&ペーストします
- 「フォーマット」メニューから「標準テキストにする」を選択します
- ファイルメニューから「名前...」を選択します
- ファイル名として、指定の名前(例えば
report-1234.py
のような)を入力し、保存します。 その際、「標準テキストのエンコーディング」の欄が「Unicode(UTF-8)」になっていることを確認しておきます。 - Google ClassroomやISTUで、保存したファイル(
report-1234.py
)を提出(アップロードや添付)します。
メモ帳(Notepad)やテキストエディット(TextEdit)はOSに標準で含まれています。追加でインストールする必要はありません。
メモ帳やテキストエディットは、「テキストエディタ」と呼ばれる種類のアプリケーションです。 テキストエディタは、文字の編集に特化されたワープロのようなもので、プログラミングでは良く用いられます。
ファイル名の末尾の.py
は拡張子と呼ばれ、そのファイルの内容がPythonのコードであることを表す「印」です。
拡張子は必ず半角英数字でなければなりません。
また、ファイル名に日本語の文字(全角文字)を使うと色々とトラブルの原因になるので、この授業では、「ファイル名は半角英数字」で統一しましょう。