この記事は、タイトル通り「ゼロから作るDeep Learning」で提供されているプログラムをgoogle colabで使えるようにするための私的メモです。
今回は「3章 ニューラルネット」の「3.6.1 MNIST データセット」で行うMNISTデータセットの読み込みスプリクトを実行できるところまでです。
同じようなことを考える方は他にもいて、同様の内容の記事↓があります。
「ゼロから作るDeep Learning」の実行環境を、Colaboratoryを用いて作成する
ですが、この通りにやってもなぜかうまくいかなかったり(私のやり方が悪いだけ?)、他にも知らないことがあったので、調べたことをまとめました。
1. 準備
まずはいろいろ準備をします
googleのアカウントを作る
アカウントを作ります。(既に持ってるならいらない。けど、何か失敗するたびにdriveが汚れていくから、これを機に専用のアカウントを作った方がいいかも。)
「ゼロから作るDeep Learning」の提供プログラムをダウンロードする
・GitHubのページ↓を開く(GitHubは世界中の人が自分で作ったプログラムを公開できるサービスらしい)
GitHub - oreilly-japan/deep-learning-from-scratch: 『ゼロから作る Deep Learning』のリポジトリ
・ページ右にある緑の「Clone or download」ボタンを押す
・「Download ZIP」を選ぶ
選ぶと保存する場所を聞かれるので、ローカルの適当な所を選んでダウンロードします。
・ZIPファイルを展開する
ZIPファイルを適当な場所に展開しておきましょう。
提供プログラムをgoogle driveにアップロードする
・インターネットブラウザでgoogle driveのページを開く
さっき作ったアカウントでログインしましょう。
・展開したディレクトリ(deep-learning-from-scratch-master)をdriveのマイドライブページにドラッグアンドドロップする
少し待つとアップロードが終わります。
google colabノートブックを作成する
・google colabのページを開く
・右下にある「新しいpython3のノートブック」を選択する
このとき必ずpython " 3 " を選択します
・一番上にあるタイトルを適当な名前(例:test.ipynb)にする
driveを開く(または更新)すると「マイドライブ」に「Colab Notebooks」ディレクトリが作成されて、その中に今編集中のファイル(test.ipynb)が出来ているはずです
2. colabでMNISTデータセットを読み込む
ここからが本番です
colabでdriveをマウントする
colabはそのままだとdriveにあるファイルを読み込むことが出来ないので、読み込めるようにします(マウントと言うらしい)(これは↓の記事に書いてありました)
ColaboratoryでのGoogle Driveへのマウントが簡単になっていたお話
・colabに↓の二行のコードを書いて Shift + Enter で実行する
from google.colab import drive
drive.mount('/content/drive')
実行すると認証の為のURLリンクと入力窓が表示されます
・表示されたURLをクリックする
クリックすると新しいタブでアカウント選択ページが開きます。
・マウントしたいdriveがあるアカウントを選択します
・なんか許可を求めて来るので「許可」を押します
・表示されたコードをコピーします
・colabのページに戻って入力窓にコピーしたコードを貼り付けて Enter を押す
これでdriveがマウントされたはずです。lsとコマンド入力して実行してみましょう。driveが表示されていれば成功です。
MNISTデータセットを読み込む
driveがマウントされてローカルのように使えるようになったので、いよいよ「ゼロから作るDeep Learning」本文に出て来るMNISTデータセットが作成スプリクトを実行します。
・cdコマンドで提供プログラムが入っているディレクトリの内、ch01~ch08のどれかに移動する
例)ch03に移動
↓のコマンドを入力して実行します
cd drive/My\ Drive/deep-learning-from-scratch-master/ch03
・本文にあるコード↓を実行する
import sys, os
sys.path.append(os.pardir)
from dataset.mnist import load_mnist
(x_train, t_train), (x_test, t_test) = load_mnist(flatten=True, normalize=False)
print(x_train.shape)
print(t_train.shape)
print(x_test.shape)
print(t_test.shape)
これでエラーが出なければ、MNISTデータセットが作成されたはずです。driveでdeep-learning-from-scratch-master/dataset内になんかファイルが増えたのを確認しましょう。
あとがき
ここまで読んで頂きありがとうございます。
ここでちょっと、この記事を書くことにした経緯を。
私はDeep Learning(以下DL)どころかプログラミングにすらしたことの無い生活をしていたのですが、先日(と言っても結構前)初めてDLに触れる機会を得ました。AIというのが最近流行っているのは耳にしていたのですが、まさか自分の身近にまで広がっているとは知らず大変驚いたの覚えています。そして興味を持った私はインターネットでいろいろと調べると、DLはまだまだ発展途上で研究の余地があるにも関わらず沢山の人が自身でDLを作成していることを知ります。そのことに触発された私は無謀にもDLを自作しようと思い立ちました。その最初の一歩としてネットで評判の良かった「ゼロから作るDeep Learning」を購入したのです。しかし、いざ本を開いてみると何やらいろいろダウンロードしなければいけないようで、自分のPCが汚れるのを嫌った私は一端学習を保留します。(そもそも自分のPCのスペックが機械学習に耐えられるとは思えない。)そして、何かいい方法が無いかと調べた結果辿り着いたのがgoogle colabです。このgoogleのコンピュータをただで使わせてもらえるという素晴らしいサービスを知った私は喜び勇んで保留していた学習を再開しました。しかし、1章2章は何とか読み進められたのですが、3章のMNISTデータセットが作成で全く手詰まりを迎えます。GitHubってなに?カレントディレクトリって?・・・この記事を読んでいる皆さんにはつまらない問題かもしれませんが、プログラム初心者には非常に高い壁でした。この壁を越えるのに数週間。しかし、知っていれば一瞬です。ですので、もし私と同じ壁にぶつかってしまった人がいるのであれば、私と同じように遠回りする必要がないよう、方法を全て書いておこうと思いました。
これが記事を書くまでの経緯です。こんな経緯ですので、私自身colabもプログラミングも良く分かっていないことだらけです。記事の内容が正しいのかすら分かりません。
ずいぶん冗長になってしまいましたのでこの辺で終わりにします。この記事はお役に立ちましたでしょうか。お役に立ったのであれば、きっとあなたは私と同様これからDLの勉強を始めるのでしょう。仲間ですね!一緒に頑張りましょう!