2. プログラミング環境の準備

2.1 セクション 2 のねらい

_images/slide_02_020.png

このセクションでは、 AI、機械学習などの演習に必要なプログラミング環境の、 準備の方法を説明します。

さらに一般的な、サンプルプログラムを実行したり、 デバッグしたりするための知識を解説します。

2.2 AI・機械学習などの、プログラミング環境

_images/slide_02_030.png

現在非常に多くのソフトウエアやツールが、 AI・機械学習などの学習環境として利用できます。 多くの企業、教育機関、関連団体などが競って提供しており、 よりどりみどりの状態です。 本講座を理解するために、 それらすべてに精通する必要は、 ありません。

まず、本講義で使用する Anaconda, Google Colab について説明します。

  • Anaconda

    Anaconda(アナコンダ) は Python言語を含む開発環境のパッケージの一つです。 インストール後は、PC 上で動作します。 Python 言語と、主要なライブラリや開発環境が含まれています。 Deep Learning と AI・機械学習などの学習に必要なツールは共通の物が多く、 Anaconda を Windows PC または Macintosh にインストールすれば、 それだけでAI・機械学習の学習環境がだいたい整います。 本講座でも主に Anaconda と、 それに含まれる Jupiter Notebook(ジュピターノートブック) を使います。

  • Google Colab

    Google Colab (グーグルコラボ) も最も広く使われている Python 開発環境の一つです。 Google Colab はクラウドサービスとして提供されます。 Google のデータセンター上で計算が実行されるので、計算にはパソコンの処理能力を使いません。 またアカウントを作れば、無料で利用できます。 無料で使えるのですからこれ以上お得なことはありません。 また、無料だからといって決して計算能力が低いわけではありません。 Google Colabが提供する計算能力は、 かなり高性能なパソコンに匹敵します。 実際多くのプログラムは安価なデスクトップPCで実行するよりも、 Google Colabで実行する方が短時間で実行できます。

    業務で使用する場合は、有料のライセンスが必要です。 また個人でも有料ライセンスである程度以上のサービスが受けられます。 しかし本講義で学ぶ範囲であれば、無料の範囲で十分利用できます。

  • Jupyter Notebook

    Jupyter Notebook は Anaconda や Google Colab で利用できる Python 言語のプログラミング、実行環境です。 Jupyter Notebook 上でプログラミングをし、実行し、結果を確認できます。 機動方法や操作方法はこの後説明します。

本講義では使いませんが、VS Code についても簡単に紹介します。

  • VS Code プログラマの人気が高いのが Visual Studio Codde (以下、VS Code、 ブイ・エス・コード) です。 VS Code はマイクロソフトがオープンソースとして提供している 無償のソフトウエアですが、 高機能のエディタを中心として、 Git環境やデバッグツール、ライブラリ環境を提供しています。 プログラニングに便利な機能を豊富に備えており、 本格的にプログラミングをしたい場合にはとても役立つツールです。

    Anaconda、Google Colab と比較すると以下の利点があります。

    • 実行中のブレークポイントや変数の表示などのデバッグツールが利用可能
    • Git や GitHub とのソースリポジトリ連携機能が豊富
    • 本体はエディターであり、プログラミング機能が強力 (プログラム作成を便利にするために最適化されたアプリケーション) であるため、慣れてくれば、入力や操作が素早く簡単に行える。

    VS Code については、A.1 Visual Studio Code(VS Code) で説明します。

2.3 実習環境の準備

_images/slide_02_040.png

以下の3つのタイプの資料を利用することができます。

  • Web 資料

    本講座のセクション3~6の講義資料として、 Jupyter Notebook のサンプルコード 2.4 Sample Code が用意されていて、 これらをダウンロードして自分で実行することができます。

  • サンプルコード

    講義資料そのものが、サンプルードになっています。 講義をよく理解するため、ぜひサンプルコードをダウンロードして、 実行してみてください。

  • 実習に使うツール

    Anaconda はセクション3~5で使います。 Google Colab はセクション6で使います。

以下のセクションでは、これらのツールや資料の準備の方法を示します。

2.4 Sample Code

本講座のセクション3~5では、Jupyter Notebook のファイルを使用して、 自分で操作しながら演習を進めることができます。

演習用ファイルは以下からダウンロードできます。

ダウンロード : tutorial_files.zip.

ダウンロードした zip ファイルは デスクトップ上の tutorial_files というフォルダに展開しておいてください。

_images/download_02_010.png

フォルダを開くとこうなっているはずです。

_images/download_02_020.png

2.5 Anaconda

2.5.1 Anaconda のインストール

Anaconda のインストール方法を説明します。

以下ではインストール作業の画面を示しながら説明します。 ただし Anaconda は常に進化しています。 以下のインストール方法も少しずつ変わっていくと思います。 また以下では Windows 10 , 64bit モードとして説明しますが、 異なる場合もあると思います。 以下の操作と異なる場合は、以下は参考として、ある程度柔軟に対応して操作してください。

以下の web サイトを開きます。

https://www.anaconda.com/products/individual

Individual Edition のダウンロードぺージが開きます。

Anaconda には有料版と無料版があります。 Individual Edition は無料版で、個人的利用のみ許されます。 業務で利用する場合は有料ライセンスが必要です。

本講座での実習は無料の Individual Edition を用います。 また、本講座の範囲では、Individual Edition が有料版より機能や性能が劣るということはほとんどありません。

Donwload をクリックすると OS や CPU の選択画面に移ります。

_images/anaconda_02_010.png

ここでは Windows 10, 64 bit を使っているものとして、説明を進めます。 それ以外の場合は、適合するものを選んでください。

_images/anaconda_02_020.png

OSなどを選ぶと、インストーラのダウンロードが開始します。

Edge の場合左下にダウンロードの状態が表示されます。

_images/anaconda_02_030.png

ダウンロードが終わったら、ダウンロードされたファイルを確認しましょう。 ただし、ファイル名はバージョンアップすると変わります。

_images/anaconda_02_040.png

正常であれば、これを起動します。

インストールには管理者権限が必要ですのでもし普段管理者権限でなければ一時的に管理者権限を有効にして、インストーラを起動しましょう。

以下が表示されます。

_images/anaconda_02_050.png

Next をクリックします。

_images/anaconda_02_060.png

Lincense Agreement の確認です。問題がなければ

I Agree

を選択します。

以下のステップでは、 特に理由がなければ Next をクリックしてステップを進めます。

_images/anaconda_02_070.png

Next をクリックします。

_images/anaconda_02_080.png

Next をクリックします。

_images/anaconda_02_090.png

これでインストールの準備が整いましたので、

Install

をクリックしすればインストールが始まります。 インストールはネットワーク環境にもよりますが、3分から20分程度かかるでしょう。

_images/anaconda_02_100.png

インストール中の画面です。

終了すると以下画面にかわります。

_images/anaconda_02_110.png

Next をクリックします。

以下のように PyCharm というツールの案内がありますが、 本講座では特に必要はありません。

_images/anaconda_02_120.png

Next をクリックします。

_images/anaconda_02_130.png

この画面でインストールは完了です。

Finish をクリックします。

インストール終了後次の Web ぺージが表示されます。 Anaconda Cloud というクラウドサービスの案内です。 本講座では、このサービスは特に必要はありません。

_images/anaconda_02_140.png

必要がなければブラウザを閉じれば、これでインストール作業は終了です。

2.5.2 Anaconda の起動

Anaconda にはいくつかのモジュールが含まれています。 本講座では Anaconda Navigator から Jupiter Notebook を起動し基本操作を確認します。

Windows の検索画面で Ana と入力すれば Anaconda Navigator が以下のように見つかるはずです。

_images/anaconda_02_210.png

Anaconda Navigator をクリックして起動します。

以下がAnaconda Navigator の起動画面です。

_images/anaconda_02_220.png

2.6 ライブラリとモジュール

2.6.1 import と モジュール

Python プログラムには、import という命令が含まれることがあります。

import numpy

import numpy as np

from numpy import pi

そして、実行時にそこでエラーになることがあります。

import はライブラリ中のモジュールやオブジェクトのインポートを指定するものです。 必要なモジュールが利用可能になっていないとエラーが発生します

2.6.2 本演習でインストールするモジュール

演習には以下のモジュールを使用します。 最初にすべて入れておくとよいでしょう。

Section モジュール
3 numpy
4 numpy,matplotlib, simpleaudio
5 numpy, pandas, xlrd

2.6.3 モジュールのインストール

モジュールを利用可能にするには、以下のようにしてモジュールを インストールすることが必要です。

  • Environment (環境) を作成する
  • そのモジュールをAnacondaにインストールする。
  • それを使用するenvironmentにインストールする。

Environmentの名前は何でもよいのですが、 my_env1 という名前を使うことにします。

以下ではmy_env1 という Environment に本実習で必要な モジュールをインストールする手順を示します。

2.6.4 my_env1 の作成

Anaconda で Environments を選び、Create をクリックし、 Create new environment というウインドウを開きます。 Pythonで3.8 を選び、Name を my_env1 として、Create をクリックします。

_images/anaenv_02_01_010.png

ここで Python 3.8 は Python のバージョン3.8 を使うとういう意味です。

右下に、Creating environment と表示があり、数分で my_env1 が作成されます。

_images/anaenv_02_01_020.png

この後は my_env1 で作業するので、'<' をクリックして、 Environments の欄は閉じてください。

Installed を選ぶとその Environment にすでにインストールされた モジュールを確認できます。

Installed を選び、検索パターンとして numpy を指定すると、 numpy 関係のモジュールは何もインストールされていないとわかります。

_images/anaenv_02_01_030.png

一方 Not Installed を選ぶと、 選択されたEnvironmentにはまだインストールされていないが Anaconda にはインストールされているモジュールを確認できます。 numpy は Anaconda にはインストールされている ことがわかります。

_images/anaenv_02_01_040.png

2.6.5 Not installed にある場合

使用したいモジュールが、Not installed にはあって Installed にない場合、 Anaconda Navigator 上でそのモジュールを my_env1 environment にインストールします。

使用したいモジュール(この場合はnumpy)にチェックマークをつけて Apply をクリックします。

_images/anaenv_02_01_060.png

以下のウインドウが現れるので再度 Apply をクリックします。

_images/anaenv_02_01_070.png

これで numpy 関連のモジュールが my_env1 にインストールされます。

2.6.6 conda install によるインストール

Not installedで tensorflow を見ると tensorflow は Anaconda 自体に 未インストールであることがわかります。

_images/anaenv_02_01_050.png

使用したいモジュールが Not installed のリストにもない場合、 Anaconda 自体にまだインストールされていません。 その場合は、conda install、または pip install でインストールする必要があります。

conda install を tensorflow を例にとって説明します。

Anaconda Navigator で my_env1 environmentを選び、 ▷ マークをクリックして、 Open Terminal を選択します。

_images/anaenv_02_02_010.png

すると以下の Anaconda Prompt が起動します。

_images/anaenv_02_02_060.png

my_env1 という部分は environment 名をあらわします。 ooooo という部分は Windows のユーザ名によって変化します。

赤線の部分に、以下の文字列(コマンド行という)を入力することで、tensorflow のインストール開始します。

conda install tensorflow

コマンド行の後に Enter キーを押します。 コマンド行の入力では、常に入力後にEnter キーを押すことで 処理が始まります。

tensorflow のモジュールのインストールが 開始され、 途中以下のプロンプトが出ていったん処理が止まります。

Continue creating environment (y/[n])  ?

赤線のように、'y' を入力します。

_images/anaenv_02_02_030.png

ここでも'y' の後に Enter が必要です。 コマンド行では、1行の入力のあと常にEnter が必要です。

以下、Proceed([y],n)? などの表示でも 'y' と Enter を入力して、 インストールを進めます。

_images/anaenv_02_02_070.png

以下のように表示されればインストールは完了です。 表示は多少違うかもしれませんが my_env1 で始まる行が出ることが目印です。

_images/anaenv_02_02_080.png

Anaconda で、my_env1 environment を選んでモジュールが インストールされているかを確認すると、 tensorflow がインストールされていることが 確認できます。

_images/anaenv_02_02_090.png

2.6.7 pip コマンドでのインストール

本講座では simpleaudio というモジュールも利用します。

simpleaudio は conda でインストールしようとしても エラーとなってしまいます。 Python のライブラリには Conda 形式と pip 形式があり、 simpleaudio は pip 形式で配布されているからです。

以下のように pip install コマンド行を入力して インストールしてください。

pip install simpleaudio

Terminal 画面上ではこのようになります。

_images/anaenv_02_03_030.png

以下のようにインストールが行われます。

_images/anaenv_02_03_040.png

Anaconda Prompt で my_env1 をクリックするとsimpleaudio のモジュールが表示されます。

_images/anaenv_02_03_050.png

2.7 Jupiter Notebook

2.7.1 Jupyter Notebook の起動

Jupyter Notebook を起動し、演習用ファイルを開く手順を示します。

Anaconda Navigator から起動します( 2.5.2 Anaconda の起動 )。 以下はAnaconda Navigator の画面です。

_images/jnb_02_005.png

Home 画面で、my_env1 を選び、Jupyter Notebook の Launch をクリックすると、Jupyter Notebook が起動します。

2.7.2 Jupyter Notebook が起動しない場合

たまに Jupyter Notebook が起動しない場合があります(2020/12月の状況)。 その場合の対処方法をいくつかあげておきます。

  • 新しい enviromnent を作った後1回目の起動は失敗することがあります。

    数分して再度 Launch すると正常に起動します。

    enviromnent を作った直後であると、後で説明するサーバの起動がブラウザの起動より遅れるため、 ブラウザがサーバへの接続に失敗するようです。

  • ブラウザを変更していると起動しない場合があります。

    Jupyter Notebook はローカルに(パソコン上で)サーバーが起動してそれをブラウザから操作します。 OSのデフォルトブラウザの設定が適切でないと、ブラウザがうまく起動しないことがあります。 一旦標準の設定に戻して試すとよいでしょう。

  • インターネット接続は関係ありません。

    ブラウザが開くので、インターネットをアクセスしているように見えるかもしれませんが、 Jupyter Notebook はパソコン内部にWebサイトが動作しており、 それをブラウザで開く仕組みになっています。 このようにパソコン内部でWebサーバが走り、それをブラウザでアクセスする機能が、 パソコンOSには備わっています。

    ネットワークには一切接続しませんので、 起動しない場合に、LANやインターネットに接続を確認する必要はありません。

2.7.3 サンプルコードを開く

Jupyter Notebook の起動画面です。 画面の赤丸の場所で、ディレクトリを異動できます。

_images/jnb_02_010.png

ダウンロードした lecture_tutorial フォルダがデスクトップにある場合、 この部分を操作して lecture_tutorial フォルダを開きます。

_images/jnb_02_020.png

section3 を学習する場合、section3_tutorial.ipynb をダブルクリックして開きましょう。

_images/jnb_02_030.png

このような画面が開きます。

_images/jnb_02_040.png

この枠で囲われた部分が「セル」です。セルのうち In [ ]: という表示があるものは実行可能なセルです。 一番上の実行可能なセルは print("hello world") と書かれていますが、 これが Python のプログラムコードです。

このプログラムコードは、メニューの RUN をクリックすることで実行できます。

実行してみましょう。

_images/jnb_02_050.png

実行すると、print("hello world") が実行されて、結果として

hello world

という出力がセルの下の部分に表示されました。

2.7.4 終了

自習が終わってファイルを閉じる場合は、

File メニューから Close and Halt をクリックしてください。

_images/jnb_02_060.png

実は Jupyter Notebook で xxxxx.ipnynb というファイルを 開くと、パソコン上で Web サーバが起動して、 xxxxx.ipynb を開いています。 もしサーバーを停止せずにブラウザのぺージのみを閉じると、 サーバーは実行中のままになってしまいます。 仮に先ほどの section3_tutorials.ipynb を停止せずに 閉じてしまうと、

_images/jnb_02_070.png

このように、Jupyter Notebook のファイル閲覧画面では、 section3_tutorials.ipynb が

Running

と表示さた状態になります。これは、

Jupiter Notebook のサーバーが section3_tutorial.ipynb を 実行中であることを示します。

このままにしておくと、sectio3_tutorial.ipynb ファイルは 使用中であるため、移動や削除を行おうとすると エラーになるなどの支障があります。

その場合は実行を止めたいファイルを選んで、

Shutdown

ボタンで実行を止めることができます。

_images/jnb_02_080.png

2.8 Google Colab

2.8.1 Google Colab のアカウント設定

ここでは Google Colab の利用に必要な Google Account を作成して、 Google Colab を使えるようにするまでの設定を示します。

まず Google Account まだ取得していない場合は以下の手順で Google Account を取得します。すでに Google Account を取得している場合はこの作業は必要ありません。

まず通常の Google の検索サイトにアクセスします。 そして右上の格子マークからメニューを開き、アカウントを選択します。

url: https://www.google.co.jp/

_images/google01-010.png

次に、「アカウントを作成する」を選びます。

_images/google01-020.png

次に、新しく作るアカウントの 氏 名 アカウントid パスワード

を選びます。<アカウントID> は簡単なものは、 すでに他の人に使われてしまっているので、 短くてもでたらめな文字列を使いましょう。

この時 <アカウントid@gmail.com> というgmailアドレスも作られます。

_images/google01-030.png

アカウントにアクセスするとこのような画面になります。

_images/google01-040.png

次に Google Account を使って Google Colab の準備をします。

まず、Google Colab の Web サイト を開きます。 検索で google colab と検索をするか、 あるいは以下をクリックすれば Google Colabが開きます。 Google Colab のウエブサイト上では、Goolge Colab は単に Colaboratory と表記されます。

url: https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja

_images/google02-010.png

Google Colab を使うには、ファイル/ノートブックを新規作成、を選びます。

_images/google02-020.png

新しいノートブックが開きます。

_images/google02-022.png

この部分に Python のプログラムを入力します。 print("hello world") と入力して、 右矢印マークをクリックすると、 サーバ側で Python プログラムを実行し、結果がすぐ下に表示されます。

_images/google02-024.png

作成したプログラムは常にクラウドに保存されています。 ファイル名を変更したい場合はこの部分で変更します。 ここでは Untitled.ipynb というファイル名のままにしておきます。

_images/google02-026.png

2.8.2 Google ドライブ の Google Colab へのマウント

ここでは Google Colab への Google ドライブ のマウント方法を説明します。

Google ドライブ をマウントすれば、Google ドライブ 経由で ソースコードやデータを Google Colab に読み込むことができます。

Google ドライブ は googl account のメニューから開くことができます。 この説明と同じようにファイルを作成した場合、こんなフォルダーになっていると思います。

_images/google02-030.png

ここで表示されている Untitled0.ipynb は、 先に Googl colab で作成したプログラムが入った Jupyter Notebook 形式のファイルです。 sampletext.txt はまだないと思います。 以下のようなテキストファイルを Google ドライブ にドラッグアンドドロップしておきます。 テキストファイルであればなんでもかまいません。

あいうえお
かきくけこ
さしすせそ
1234567890
The quick brown fox jumps over the lazy dog.
これでおわりです。

次に、この sampletext.txt を Python プログラムに読み込む方法を説明します。

Google ドライブ と共有するためには以下のような Python プログラムを実行します。

from google.colab import drive

drive.mount('/content/drive')

_images/google02-034.png

これを実行すると画面には以下のようなプロンプトが現れます。

_images/google02-040.png

これは、Google ドライブ に対し Google Colab が認証を求め、 認証キーを入力してください、というメッセージです。

同じgoogleのクラウドに同じアカウントでログインしているのに、 なぜ認証が必要なのでしょう。 ちょっと不思議かもしれません。

Google Colab は google のクラウド上で実行されていますが、 このとき動いている Python のプログラムや Google Colab 上で処理されるツールは、 同じクラウド上で動いていても、セキュリティ上は別の領域です。 Google ドライブ からみると必ずしも信頼できるものではありません。 実行する Python プログラムによっては、 google dcrive 上のファイルを削除したり外部に送信することも可能です。 したがって、Google Colab から Google ドライブ へのアクセスを許すためには、 これから実行する Google Colab 上のプログラムが信頼できることを確認したうえで 認証操作を行う必要があります。 特に出所が不確かな Python プログラムから Google ドライブ のフォルダのアクセスを許すのは、 リスクがありますので、気をつけてください。

問題がなければ、まずリンクをクリックして、Google ドライブ はアクセスのための認証コードを発行し、 それをコピーペーストして Google Colab の Python プログラムに入力することで、 認証が完了します。

以下画面では、使用するアカウントを選びます。

_images/google02-050.png

以下画面でアクセスを許可します。

_images/google02-060.png

するとこのように認証コードが表示されるので、これを ctrl-C でコピーします。

_images/google02-070.png

こちらのぺージに ctrl-V でペースト

_images/google02-080.png

Mounted at /content/drive

と表示され、Python コードから Google ドライブ へのアクセスが可能になりました。

_images/google02-084.png

今 ためしに ls コマンドでマウントされたフォルダのファイルを見てみましょう。

_images/google02-090.png

次に、/content/drive/'My Drive'/sampletext.txt を表示してみましょう。

_images/google02-100.png

Google ドライブ のファイルが読めました。

以上のように、 Jupyter Notebook のファイルを読み込みたい場合は、 Google ドライブ に保存した上で、 Google Colab メニュー上のファイル/読み込むことができます。

また Python プログラムからファイルを読み込みたい場合は、 今示したプログラムで Google ドライブ を Google Colab にマウントすることで、 Google ドライブ 上のファイルを読み書きなど操作することができます。

2.9 セクション2のまとめ

_images/slide_02_050.png
  • 本講座で紹介するコンピュータでの実行例は、Anaconda, Jupyter Notebook, Google Colab などを使っています。

    これらをPC上で自分で動作させるための準備の方法を説明しました。

  • インストール作業やアカウント登録の方法は資料 Web サイトを参照して行ってください。

    これらの資料が古くなっている場合もあります。 インストールやアカウント登録に必要な情報は、インターネット上でも探すことができますから、 不足する情報はインターネットで探して補完しましょう。