Help us understand the problem. What is going on with this article?

ゼロから作るDeep Learningで素人がつまずいたことメモ:1章

はじめに

ふと思い立って、「ゼロから作るDeep LearningーーPythonで学ぶディープラーニングの理論と実装」「ゼロから作るDeep Learning(2)ーー自然言語処理編」を勉強することにしました。

ただ、なかなか時間も取れなくて続くのかどうかが非常に心配です。でも、2〜3年前に「言語処理100本ノック2015」をやりきった時は、素人の言語処理100本ノックとしてQiitaに投稿し続けて、みなさんの「いいね」やコメントのおかげでやりきることができたので、今回もQiitaの力を借りることにしました。

今回はこの本で私がつまずいたことなどを1章ごとにメモしていこうと思います。誤りなどありましたら、素人の言語処理100本ノックの時と同様にご指摘いただけるとうれしいです。

(このメモの他の章へ:1章 / 2章 / 3章 / 4章 / 5章 / 6章 / 7章 / 8章 / まとめ

私の環境

今回はmacOS Mojaveで進めます。

実際の動作環境はMac on Macの形の仮想マシンです。ハードがMacなら普通はそのまま使うかと思いますが、開発環境の構築などで試行錯誤することを考えると、仮想マシンの方がスナップショットで分岐したり戻したりできて便利なんですよね。

以下、環境の詳細です。

項目 環境 
ハード Mac mini(Late 2012)
ホストOS macOS Mojave バージョン 10.14.6
仮想化基盤 Parallels Desktop 15 for Mac Pro Edition バージョン 15.0.0 (46967)
ゲストOS macOS Mojave バージョン 10.14.6

この仮想マシンの構築については、Parallels DesktopでmacOS仮想マシンを構築にまとめています。

1章 Python入門

第1章はPython入門です。私は言語処理100本ノックをPythonでやっていたので、この章はPythonをおさらいする感じになりました。

1.1 Pythonとは

Pythonいいぞ、という説明です。

1.2 Pythonのインストール

本に従いAnacondaをインストールしました。特につまずくところはなかったのですが、本ではインストールについて3行くらいしか書かれていないので、軽く手順をまとめておきます。

まず、本に載っているAnacondaのサイト(https://www.anaconda.com/distribution)で「Download」します。残念ながら英語です。
スクリーンショット 2019-10-27 12.44.16.png

Pythonのバージョンを尋ねてくるので、本に従って3系である3.7を「Download」します。
スクリーンショット 2019-10-27 12.45.15.png

ダウンロードしたインストーラを実行して、インストールします。これは日本語になっていました。
スクリーンショット 2019-10-27 12.47.26.png
途中でインストール先を尋ねられたので、私は「自分専用にインストール」にしました。Macを他の人と共用していないのであれば、これで良いかと思います。
スクリーンショット 2019-10-27 12.47.57.png
スクリーンショット 2019-10-27 12.48.07.png
あとは普通に進めばインストールできます。

1.3 Python インタプリタ

ターミナルでバージョンの確認と、インタプリタの実行です。
スクリーンショット 2019-11-02 12.17.35.png
正しくインストールできている模様です。ちなみにPythonのバージョンは3.7.4でした。

1.4 Python スクリプトファイル

もしテキストエディタとしてmacOS標準のテキストエディットを使う場合は、フォーマットを標準テキストにしましょう。そうしないと拡張子.pyで保存ができません。
スクリーンショット 2019-11-02 21.40.05.png
保存する時の「標準テキストのエンコーディング」は「Unicode (UTF-8)」のままで大丈夫です。
スクリーンショット 2019-11-02 21.50.42.png
ターミナルで保存した場所にcdして実行します。
スクリーンショット 2019-11-02 22.00.17.png
いい感じ!日本語の扱いも問題なさそうです。

(脱線) Visual Studio Codeの準備

テキストエディットはさすがにコーディングには向かないので、私はVisual Studio Codeを使うことにしました。インストールや使い方はググるとたくさん見つかるので、ここではサラッと導入の流れだけまとめます。

  1. まずVisual Studio Codeのインストールです。私は前述のようにMac on Macの形で、普通にインストールすると表示周りでトラブってしまったので、Parallels DesktopのmacOS仮想マシンでVisual Studio Codeをとりあえず使うに対応をまとめました。

  2. Pythonで便利に使えるようにするために、Microsoftが配布する「Python extension for Visual Studio Code」を追加します。@tkdrecord さんのMacのVisual Studio CodeでPythonの開発をできるようにしてみたよが参考になります。
    スクリーンショット 2019-11-23 20.25.23.png

  3. 日本語表記にするために、Microsoftが配布する「Japanese Language Pack for Visual Studio Code」を追加します。@ntkgcj さんのVisual Studio Code [vsCode] 日本語化が参考になります。
    スクリーンショット 2019-11-23 20.31.57.png

  4. コードの静的分析をしてくれるLinterとしてflake8を追加します。@firedfly さんのVS Code コーディング規約を快適に守るが参考になります。
    スクリーンショット 2019-11-24 23.32.36.png

  5. コードを整形してくれるFormatterとしてautopep8を追加します。これも@firedfly さんのVS Code コーディング規約を快適に守るが参考になります。
    スクリーンショット 2019-11-24 23.35.12.png

  6. 関数説明などのdocstringを簡単に書けるようにautoDocstringを追加します。これも@firedfly さんのVS Code コーディング規約を快適に守るが参考になります。
    スクリーンショット 2019-11-24 23.37.05.png

  7. 起動時に右下にメッセージが出てきます。
    スクリーンショット 2019-12-03 9.23.42.png
    conda(Anacondaに内包されています)の環境で統合ターミナルを使う時は、Visual Studio Codeの環境設定を引き継がない設定にした方がいいですよ。設定を変えますか?ということらしいので「Yes」しておきましょう。

これで、Visual Studio Codeでコードを書いて、右上の緑三角のボタンで簡単に実行できるようになりました。
スクリーンショット 2019-12-03 9.35.10.png
いい感じ!

1.5 NumPy

NumPyはAnacondaに含まれているので、そのまま使えます。
スクリーンショット 2019-11-02 22.09.38.png

1.6 Matplotlib

MatplotlibもAnacondaに含まれているので、そのまま使えます。
スクリーンショット 2019-11-02 22.27.56.png
なお、本で使われているlena.pngという画像は、この本で出てくる他のソースと合わせて、オライリー・ジャパンのGitHubリポジトリで公開されていますので、この機会に一括でダウンロード(clone)しておきましょう。

まず、この本のGitHubリポジトリ(https://github.com/oreilly-japan/deep-learning-from-scratch)へアクセスします。
スクリーンショット 2019-11-02 22.41.48.png
ここで、「Clone or download」を選び「Download ZIP」すればOKです。
スクリーンショット 2019-11-02 22.42.10.png
ダウンロードした中のdatasetフォルダーにlena.pngがありますので、本に従ってこのファイルのパスを指すようにコードを書けば表示できます。
スクリーンショット 2019-11-02 22.50.41.png
ちなみに、この女性は誰?という方はウィキペディアのレナ(画像データ)の解説をどうぞ。

1.7 まとめ

本にもあるように、この章はPythonやNumPy、Matplotlibの必要最低限の説明になっています。私はすでに言語処理100本ノックで触っていたのでおさらいにちょうど良い感じでしたが、物足りない方は本で紹介されている参考書籍などで勉強されると良いかと思います。

この章は以上です。誤りなどありましたら、ご指摘いただけますとうれしいです。
(このメモの他の章へ:1章 / 2章 / 3章 / 4章 / 5章 / 6章 / 7章 / 8章 / まとめ

segavvy
IT企業で企画・マーケを担当している元エンジニアです。 C|C#|VBA|Python|全文検索|自然言語処理|機械学習|企画|マーケ|ドラクエ好き|嫁さんはディズニー教|写真は丸まってたペンギン
http://profile.hatena.ne.jp/segavvy/
info-brdg
「SAVVY」シリーズを中心としたプロダクト事業と、IBM iの基幹系SI事業を展開しております!
http://www.info-brdg.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away