2020年12月2日水曜日

Python, Tensorflow, Kerasのインストール

 tensorflowや, kerasを使用するには,色々とバージョン関係が難しいことがわかりました(eg. 昨日の投稿でPythonのver. 3.8を入れたら,Kerasは動かないと警告が出てしまった).

調べてみたところ,以下のバージョンであれば動くとのことなので,改めてインストールを行ってみました.

  • Python 3.6
  • Tensorflow(gpu版)2.0.0
  • MSVC 2017
  • CuDNN 7.4
  • CUDA 10.0
  • TensorFlow, CUDA

2020年12月1日火曜日

Windows10にminicondaをインストール

注:以下の手順でminicondaをインストールすることは可能ですが,TensorflowやKerasを利用する場合にはバージョンの問題が生じる可能性があります.現段階(2020.12.01)ではPython3.8ではKerasをインストールしようとすると,ver3.8では動かないという警告が出ました.

Windows10にminicondaをインストールした際のメモです.

MinicondaはAnacondaに比べてライブラリーの少なく,最小限の状態と言える環境設定です.以前はAnacondaをインストールしていたのですが,若干問題が発生したので,Anacondaをアンインストールして,Minicondaをインストールすることにしました.

1. Windowsのminicondaインストーラの入手

Minicondaのサイトから,Python3.8, 64bitOSのインストーラーを選択しました(当然,自分のシステムに合うものを選択します).

2. インストールの開始

ダウンロードしたminicondaインストーラをダブルクリックして起動させます.

Next >をクリックします.

I Agreeをクリックします.

Just Me(recommended)を選択してNext >をクリックします.

minicondaのインストール先を指定して,Next >をクリックします(特に必要がなければデフォルトのままで).以下の画像のモザイク部分はインストール先が記載されている場所です.

Register Miniconda3 as my default Python 3.8を選択(デフォルト)して,Next >をクリック

Next >をクリックして,インストール完了.

3. Minicondaがインストールされていることを確認

スタートメニューには,以下のように"Anaconda3 (64-bit)というフォルダとAnaconda Powershell Prompt (miniconda3),Anaconda Prompt (miniconda3)の二つのショートカットが表示されるはずです.

Anaconda Prompt(Powershellでも良い)を起動して,

        python -–version

と入力してPythonのバージョン(今回の場合は 3.8.5)が出力されればインストール完了です.

2020年11月26日木曜日

Pythonによる囲碁ゲームの表現

囲碁ディープラーニングプログラミング(原書:Deep Learning and the Game of Go)を読んでみた際のメモです.囲碁ディープラーニングプログラミングの 第I部 第3章では,Pythonによる囲碁ゲームの実装( dlgo と呼ばれるモジュールを段階的に構築して,Python上で囲碁ゲームを表現する)が始まります.

2020年9月15日火曜日

Python3 のrequestsモジュールをインストールする

Python(3.x)でWebデータの送受信を行う際には requests モジュールを使用します.Requests モジュールはデフォルトでは入っていないので,必要に応じてインストールする必要があります.

インストール方法は以下のようになります.

% pip3 install requests

Collecting requests

  Downloading requests-2.24.0-py2.py3-none-any.whl (61 kB)

     |████████████████████████████████| 61 kB 495 kB/s 

Collecting certifi>=2017.4.17

  Downloading certifi-2020.6.20-py2.py3-none-any.whl (156 kB)

     |████████████████████████████████| 156 kB 2.6 MB/s 

Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1

  Downloading urllib3-1.25.10-py2.py3-none-any.whl (127 kB)

     |████████████████████████████████| 127 kB 2.3 MB/s 

Collecting idna<3,>=2.5

  Downloading idna-2.10-py2.py3-none-any.whl (58 kB)

     |████████████████████████████████| 58 kB 2.4 MB/s 

Collecting chardet<4,>=3.0.2

  Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB)

     |████████████████████████████████| 133 kB 3.4 MB/s 

Installing collected packages: certifi, urllib3, idna, chardet, requests

Successfully installed certifi-2020.6.20 chardet-3.0.4 idna-2.10 requests-2.24.0 urllib3-1.25.10


2020年8月11日火曜日

勾配降下法によるパラメータ最適化

 勾配降下法によるパラメータ最適化の計算に関するメモです.

$f(x) = w_{0} + w_{1}x + w_{2}x^{2} + \cdots + w_{M}x^{M} = \sum_{m=0}^{M} w_{m}x^{m} \ \ \ (1)$

e.g. $x_{1} \sim x_{10}$の10箇所の観測点について式(1)で計算される$t$の値と,実際に観測された$t_{n}$を比較する.それぞれの差の2乗を合計したものをこの推定の誤差と定義する.

$\{ f(x_{1}) - t_{1} \}^{2} + \{ f(x_{2}) - t_{2} \}^{2} + \cdots + \{ f(x_{10}) - t_{10} \}^{2} \ \ \ (2)$

誤差の値が大きいということは...式(1)から推定される$t$の値は,実際の観測値とはあまり一致していないということ.よって,誤差がなるべく小さくなるような$f(x)$が得られるようにパラメータ$\{ w_{m} \}_{m = 0}^{M}$を決定すれば最適化がなされることになる.

ここで,計算の都合上,式(2)の値を$1 / 2$倍したものを誤差関数$E_{D}$として定義する.

$E_{D} = \cfrac{1}{2} \sum_{n = 1}^{N} \{ f(x_{n}) - t_{n} \}^{2} \ \ \ (3)$

式(3)に式(1)を代入すると

$E_{D} = \cfrac{1}{2} \sum_{n = 1}^{N} ( \sum_{m = 0}^{M} w_{m} x_{n}^{m} - t_{n} )^{2} \ \ \ (4)$

なお,式(3)は二乗誤差と呼ばれる.また,式(4)はトレーニングセットとして与えられた具体的な観測値$\{ ( x_{n}, t_{n} ) \}_{n=1}^{N}$を用いて計算される(問題の前提として与えられる定数値)である.

式(4)を係数$\{ w_{m} \}_{m=0}^{N}$の関数とみなして,これを最小にする係数を求める.式(3)の二乗誤差を最小にする手法を最小二乗法という.

式(4)の誤差関数を最小にする最小化問題に帰着する.すなわち,式(4)を$\{ w_{m} \}_{m = 0}^{M}$の関数とみなした際の偏微分係数が0になるという条件として

$\cfrac{\partial E_{D}}{\partial w_{m}} = 0 \ \ \ (m = 0, 1, \cdots , M) \ \ \ (5)$

を解く.係数をまとめてベクトル${\bf{w}} = (w_{0}, w_{1}, \cdots, w_{M})^{T}$とみなせば,勾配ベクトルが0になると言っても良い.

$\nabla E_{D} ( {\bf{w}} ) = 0 \ \ \ (6)$

ここでは

2020年6月19日金曜日

[Python] Chainerのインストール

必要に応じて,Chainerをインストールしてみることになった際のメモです.


% pip3 install chainer
ターミナルから上記のように実行すると,以下のように表示され,インストール完了です.
Collecting chainer
  Downloading chainer-7.4.0.tar.gz (1.0 MB)
     |████████████████████████████████| 1.0 MB 927 kB/s 
Requirement already satisfied: setuptools in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from chainer) (39.1.0)
Collecting typing_extensions
  Downloading typing_extensions-3.7.4.2-py3-none-any.whl (22 kB)
Requirement already satisfied: filelock in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from chainer) (3.0.12)
Requirement already satisfied: numpy>=1.9.0 in ./Library/Python/3.6/lib/python/site-packages (from chainer) (1.18.5)
Requirement already satisfied: protobuf>=3.0.0 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from chainer) (3.12.2)
Requirement already satisfied: six>=1.9.0 in ./Library/Python/3.6/lib/python/site-packages (from chainer) (1.15.0)
Building wheels for collected packages: chainer
  Building wheel for chainer (setup.py) ... done
  Created wheel for chainer: filename=chainer-7.4.0-py3-none-any.whl size=967111 sha256=b2bb7a1738cb9b17502e9523828703a073c12ffe19377bcca5203e19ef311485
  Stored in directory: /Users/hide/Library/Caches/pip/wheels/97/47/f1/a658280845b000a58baae410894ef35dc6873c77ef29d1ec8d
Successfully built chainer
Installing collected packages: typing-extensions, chainer
Successfully installed chainer-7.4.0 typing-extensions-3.7.4.2



2020年6月9日火曜日

Kerasの仮想環境下で計算を実行する

過去にKerasに関する設定を以下のように行ってきました.


"mykeras"の仮想環境下でkerasの実行を行うには,以下の手順で行います.

Anaconda Promptを立ち上げます.
(base) C:\User\User Name>

その後に,以下のコマンドを実行して,mykerasの仮想環境に入り,Jupyter Notebookを起動します.
(base) C:\User\User Name>activate mykeras
(mykeras) C;User\User Name>jupyter-notebook

(mykeras)環境下にはKerasに関するモジュールしか入っていないので,必要に応じてインストールを行います.
以下は,matplotlib, sklearnをインストールする際のコマンド実行例です.

(mykeras) C;User\User Name>pip install matplotlib
(mykeras) C;User\User Name>pip install sklearn

2020年5月20日水曜日

[Python] PILのインストール

pip3でPIL(Python Imaging Library)をインストールするには,
% pip3 install pil
としても,以下のようなエラーが表示されます.
ERROR: Could not find a version that satisfies the requirement pil (from versions: none)
ERROR: No matching distribution found for pil

正しくは,
% pip3 install pillow
としなければなりません.

2020年5月19日火曜日

GitHubでディレクトリを作成する

GitHub上でディレクトリを作成する際には,ディレクトリを作成したいレポジトリに移動して Create new file をクリックします.



Name your file... 欄に作成したいディレクトリ名を入力して最後に /(スラッシュ)を入力するとディレクトリが作成されます.
最後にファイル名を入力してコミットするとディレクトリが作成されます.ファイル名は .gitignore とするとテンプレートを使用することが可能です.

もしかすると,もっと別の方法があるのかもしれませんが,とりあえずはこの方法でもディレクトリを作成可能です.

2020年1月1日水曜日

[Python] __init__メソッド

__init__メソッドは,クラスをインスタンス化する際に必要なメソッドです.

まずは,クラスについて

  • クラスはデータとその処理方法がひとまとまりになったもので,オブジェクト指向プログラミングでは欠かせない概念.
  • Pythonでクラスを使う際には,__init__メソッドを使う必要がある.
  • __init__メソッドを使うことで,抽象的な様々なクラスを実体化して使うことができるようになる.

インスタンス化とは抽象的なクラスという概念に,中身を与えて具体化することで,Pythonにおけるインスタンス化には__init__メソッドを用います.

Pythonのコードでクラスは
>>> class クラス名:
...     def __init__(self, 他の引数):
と書かれます.なお,selfはそれぞれのインスタンスを表すものです.

__init__を利用してインスタンス化する例を以下に示します.
この例では,Carsと名付けたクラスを作り,車名を引数に渡してインスタンス化することで中身を与えます.
>>> class Cars:
...     def __init__(self, name):
...         self.car_name = name
...     
...     def print_name(self):
...         print('Your car is the {}.'.format(self.car_name))

クラスを実装できたので,次はインスタンス化を行ないます.
>>> db9 = Cars('Aston Martin DB9')
これでインスタンス化が完了したので,hello()メソッドを使用して確認してみます.
>>> db9.print_name()
Your car is the Aston Martin DB9.
print_name()を実行すると,上記の例のように,
    Your car is the Aston Martin DB9.
と表示されるので,db9という車の名前のインスタンス化に成功していることが確認できました.