スポンサーリンク

「ゼロから作るDeepLearning③」を写経してみる(1)箱としての変数

2020年4月24日

第3弾のゼロから作るDeepLearning③は、ゼロから、たった60のステップで、Deep Learning用のフレームワーク『DeZero』を作っちゃうらしいです。もちろん、Deep Learningを実際に行うのであれば、PyTorchやTensorFlow(Keras)を使用すればよいのですが、『自分で作るからこそ、見えるモノ』があるらしく、楽しく写経していきたいと思います。(→この本を電子書籍で読む方法はこちらへ)

最初はGoogle Colaboratoryで、途中から、WindowsパソコンにAnacondaをインストールして、写経してみたいと思います。

スポンサードリンク

開発環境

Windows 10 Pro
Chrome

Google Colaboratoyへログイン

Googleアカウントがなければ作成し、 https://colab.research.google.com/  にログインします。そして、『ノートブックを新規作成』をクリックします。

なんとなくdarkモードが好きなので、画面右上の設定ボタンをクリックし、

テーマを 『dark』 にして、『保存』 をクリックします。

darkモードになりました。画面左上の、Untitledxxx.ipynb をクリックして、ファイル名を変更して、Ctrl + S で保存します。

『DeZero』で用いる変数をVariableクラスとして実装する

Deep Learningのフレームワークを用いるということは、『何か』を入力して、『何らかの結果』を返してもらうという作業になります。

その『何か』は、コンピュータが、今回は、DeZeroが理解できる形として、決まり事を作っておく必要があります。この入力する『何か』の入れ物である『変数』を、Variableクラスとして実装します。

なお、『変数』とは、『dataを入れるための箱』だそうです。

クラスって何?

クラスとオブジェクト(参照: objectオブジェクトとprototypeプロトタイプ

いきなりでてきました。クラス!

『クラス』とは、『オブジェクト指向言語』における、『設計図』のようなものです。(参考: クラス (class)とは

詳しくは、アジャイル時代のオブジェクト脳のつくり方 Rubyで学ぶ究極の基礎講座の本がお勧めですが、とりあえず、今回はすっ飛ばしてよいと思います。

Variableクラスが『箱』となるように実装する

やっと、Colaboratoryに以下を入力して実行(Run)(Shift + Enter)します。

# Variableクラスの実装
class Variable:
    def __init__(self, data):
        self.data = data

# numpyをimport
import numpy as np

data = np.array(1.0)
x = Variable(data)
print(x.data)

実行結果

numpyって何?

numpyはPythonで学術計算をするためのライブラリだそうです。機械学習では行列を計算することが多いのですが、numpyを用いると、それが簡単になります。必須です。

参考:【Python入門】numpyで計算をしてみよう
侍テック編集部 2018/1/25

Google Colaboratoryでインデントをスペース4つに変更する

Pythonは、タブはスペース4個とすることが多いので(PEP8 ?)、そのように設定します。

ツールバーの『ツール』>『設定』の順にクリック

『エディタ』をクリック

『インデント幅(スペース)』を、2 から 4 に変更します。

スポンサーリンク