Theanoを追加してみる
■環境
Windows 7 Ultimate Service Pack1 (64bit)
+ Python 2.7.9 (32bit)
■インストール
これだけで、インストールはあっさり出来てしまう
>python -m pip install theano
インストール後、importを試してみると
>>> import theano
→エラーが。。。メッセージを見ると、g++が無いと言われている
そこで、MinGWをインストールし、以下の項目にチェックを入れて追加
・mingw32-base (必要かどうか分からなかったのでとりあえず...)
・mingw32-gcc-g++
MinGWインストール先のbin以下に「g++.exe」が存在している事を確認して、この場所を環境変数の「PATH」に追加する
-----
ここまでの作業後に再度importで確認
>>> import theano
>>>
→無事、使えるようになったらしい
■簡単に試してみる
>>> import theano
>>> import theano.tensor as T
>>>
>>> x = T.dscalar('x')
>>> y = x**2+3
>>> gy = T.grad(cost=y, wrt=x) # 微分
>>>
>>> f1 = theano.function(inputs=[x], outputs=y)
>>> f2 = theano.function(inputs=[x], outputs=gy)
>>>
>>> print f1(3), f2(3)
12.0 6.0
期待通りの計算結果が表示される
12.0 「x**2+3」のxに3を代入した結果
6.0 「2*x」(x**2+3の微分)に3を代入した結果
簡単な記述で、式を解析して微分を解けてしまう事に驚いてしまった!
2015年8月31日月曜日
Python CPythonのインストールとモジュール追加
IronPythonでnumpy、scipy等のライブラリ追加をしようと手を動かしてみたのだけど、どうにも上手く進める事が出来なくて、追加でCPythonをインストールする事に。
■CPython
インストールは何てことない。msi(インストーラー)があるので、これを実行するだけ
インストールしたのは、以下のもの
「python-2.7.9.msi」
■モジュールの追加
・numpy
インストーラーが存在しているのですんなり
「numpy-1.9.2-win32-superpack-python2.7.exe」
・scipy
インストーラーが存在しているのですんなり
「scipy-0.16.0-win32-superpack-python2.7.exe」
-----
ここまでで、当初の目的は果たしたものの他にも追加をすすめる
・matplotlib
インストーラーが存在しているのですんなり
「matplotlib-1.4.3.win32-py2.7.exe」
・dateutil
pipで見つからないと怒られて、ダウンロードして手動で追加
「python-dateutil-1.5.tar.gz」
・wxPython
インストーラーが存在しているのですんなり
「wxPython3.0-win32-3.0.2.0-py27.exe」
・six
pipでインストール
「python -m pip install six」
-----
失敗により保留
・pyaudio
インストーラーが落ちてしまう・・・
「pyaudio-0.2.8.py27.exe」
なんだか、すでに混沌の予感。。
■CPython
インストールは何てことない。msi(インストーラー)があるので、これを実行するだけ
インストールしたのは、以下のもの
「python-2.7.9.msi」
■モジュールの追加
・numpy
インストーラーが存在しているのですんなり
「numpy-1.9.2-win32-superpack-python2.7.exe」
・scipy
インストーラーが存在しているのですんなり
「scipy-0.16.0-win32-superpack-python2.7.exe」
-----
ここまでで、当初の目的は果たしたものの他にも追加をすすめる
・matplotlib
インストーラーが存在しているのですんなり
「matplotlib-1.4.3.win32-py2.7.exe」
・dateutil
pipで見つからないと怒られて、ダウンロードして手動で追加
「python-dateutil-1.5.tar.gz」
・wxPython
インストーラーが存在しているのですんなり
「wxPython3.0-win32-3.0.2.0-py27.exe」
・six
pipでインストール
「python -m pip install six」
-----
失敗により保留
・pyaudio
インストーラーが落ちてしまう・・・
「pyaudio-0.2.8.py27.exe」
なんだか、すでに混沌の予感。。
2015年8月28日金曜日
Python Pipのインストール
IronPythonをインストールしたのは良いものの、ライブラリのインストールでかなり戸惑いました。
とりあえず、Pipのインストールが以下の流れできた様子
■環境
Windows 7 Ultimate Service Pack 1 (64bit)
+ IronPython 2.7.5
■インストール手順
(1)コマンドプロンプトを管理者権限で実行
(2)IronPythonのインストール先(ipy.exeが存在する場所)へ移動し、以下を入力
PROMPT>ipy -X:Frames -m ensurepip
Ignoring indexes: https://pypi.python.org/simple/
Downloading/unpacking setuptools
C:\Program Files (x86)\IronPython 2.7\Lib\weakref.py:1: DeprecationWarning: object.__init__() takes no parameters for type KeyedRef
"""Weak reference support for Python.
Downloading/unpacking pip
Installing collected packages: setuptools, pip
Successfully installed setuptools pip
Cleaning up...
書いてしまえばこれだけなんですが、、、
正直、辿り着くまでに費やした時間が。
2015年8月27日木曜日
Python 少しだけ実用的な所に触れてく(2)
■関数、ファイルサイズ取得
ファイルサイズを表示する関数を書いてみる>>> import os
>>> import glob
>>>
>>> # 関数
>>> def GetFileSize(target_file):
... fsize = os.path.getsize(target_file)
... print target_file, "=", fsize
...
>>>
>>> # 対象の指定
>>> target = r'd:\tmp\*.*'
>>>
>>> # 対象についてファイルサイズを表示(関数呼び出し)
>>> for file in glob.glob(target):
... GetFileSize(file)
...
→「ファイル名 = ファイルサイズ」の形で列挙されます
Python 少しだけ実用的な所に触れてく
■ファイルの一覧
指定したディレクトリのファイル一覧を表示
>>> import os
>>>
>>> # ディレクトリの指定
>>> path = r'd:\tmp'
>>>
>>> # ファイルの列挙
>>> for file in os.listdir(path):
... print file
....
→これで指定ディレクトリ(d:\tmp)のファイル一覧が得られます
■ファイル書き込み(テキスト)
単純なテキストファイルの処理
>>> # 対象のファイル
>>> target_file = r'd:\tmp\test.txt'
>>>
>>> # ファイルオープン
>>> f = open(target_file, 'w')
>>>
>>> # ファイルへ書き込み
>>> f.write("aaa")
>>>
>>> # ファイルクローズ
>>> f.close()
>>>
→aaaが記述された指定ファイル(d:\tmp\test.txt)が作成されます。
既に存在する場合は上書き
■ファイル読み込み(テキスト)
単純なテキストファイルの処理
>>> # 対象のファイル
>>> target_file = r'd:\tmp\test.txt'
>>>
>>> # ファイルオープン
>>> f = open(target_file, 'r')
>>>
>>> # ファイルの読み込み、クローズ
>>> lines = f.readlines()
>>> f.close()
>>>
>>> # ファイルの内容を表示
>>> for line in lines:
... print line
...
aaa
→テキストファイルの内容(aaa)が表示されます
指定したディレクトリのファイル一覧を表示
>>> import os
>>>
>>> # ディレクトリの指定
>>> path = r'd:\tmp'
>>>
>>> # ファイルの列挙
>>> for file in os.listdir(path):
... print file
....
→これで指定ディレクトリ(d:\tmp)のファイル一覧が得られます
■ファイル書き込み(テキスト)
単純なテキストファイルの処理
>>> # 対象のファイル
>>> target_file = r'd:\tmp\test.txt'
>>>
>>> # ファイルオープン
>>> f = open(target_file, 'w')
>>>
>>> # ファイルへ書き込み
>>> f.write("aaa")
>>>
>>> # ファイルクローズ
>>> f.close()
>>>
→aaaが記述された指定ファイル(d:\tmp\test.txt)が作成されます。
既に存在する場合は上書き
■ファイル読み込み(テキスト)
単純なテキストファイルの処理
>>> # 対象のファイル
>>> target_file = r'd:\tmp\test.txt'
>>>
>>> # ファイルオープン
>>> f = open(target_file, 'r')
>>>
>>> # ファイルの読み込み、クローズ
>>> lines = f.readlines()
>>> f.close()
>>>
>>> # ファイルの内容を表示
>>> for line in lines:
... print line
...
aaa
→テキストファイルの内容(aaa)が表示されます
Pythonに触れてみる(3)
Pythonに触り始めて2日目。
基本的な触り方を続けて見ていきます。
■真/偽(bool)を使う
単純に変数に入れてprint
>>> value1 = True
>>> print value1
True
>>> print int(value1)
1
→そのままprintだとTrueの出力がされてます。
-----
Trueと1の比較
>>> value1 = True
>>> if value1 == 1:
... print "True"
... else:
... print "False"
...
True
→比較の結果、等価とみなされています。
■変数へ値を入れる
今さらですが、なじみの無い書き方ができるようなので
>>> a, b = 1, 2
>>> print a
1
>>> print b
2
-----
異なる型でも同じように
>>> c, d = 10, 'aaa'
>>> print c
10
>>> print d
aaa
→こんな書き方ができるんですね。実際には複数行に分けて書きそうなので、出番はないかも・・・
■繰り返し(for文)
何も考えず
>>> for x in (1, 2, 3):
... print x
...
1
2
3
-----
forブロックの後ろでxを確認してみると
>>> print x
3
→xは存在していて、最後の値である3が出力されてました。
-----
for文にelse??
>>> for x in (1, 2, 3):
... print x
... else:
... print "終わり"
...
1
2
3
終わり
→繰り返しの終わり(繰り返し条件を満たさなくなった)ところで実行されてます。
-----
次へ(continue)
>>> for x in (1, 2, 3)
... continue
... print x
... else:
... print "終わり"
...
終わり
→乱暴ですが。。。print前に次の要素へ進めて、最後にelseの"終わり"が出力されてます。
-----
中断(break)
>>> for x in (1, 2, 3):
... break
... print x
... else:
... print "終わり"
...
→中断をした場合は、else部分の処理もされてません。
繰り返しでelseが使えるのは面白いかも知れませんね |
2015年8月26日水曜日
Python モジュールを追加
何ができるか、まだまだ理解が出来ていませんが
試しにモジュールを追加してみる。
対象 : jinja2-2.8
■環境
Windows 7 Ultimate (64bit)
+ IronPython 2.7.5
■追加手順
(1)jinja2を入手
→jinja2-2.8.tar.gz (2015/08/26時点の最新)
(2)解凍した中の「jinja2」フォルダをIronPythonインストール先の「Lib\site-packages」以下へコピー
(3)テキストファイル「jinja2.pth」を作成し、テキスト「jinja2」(フォルダ名)を記述
(4)上で作成したテキストファイルを「Lib\site-packages」へ配置
-----
ここで、IronPython Consoleを起動して確認してみると・・・
>>> import jinja2
Traceback (most recent call last):
(省略)
ImportError: No module named markupsafe
→markupsageが無いと怒られる。
-----
(5)markupsafeを入手
→Markupsafe-0.23.tar.gz(2015/08/26時点の最新)
(6)解凍した中の「markupsafe」フォルダを同様に「Lib\site-packages」以下へコピー
(7)テキストファイル「markupsafe.pth」を作成し、テキスト「markupsafe」を記述
(8)上で作成したテキストファイルを「Lib\site-packages」へ配置
■確認
>>> import jinja2
>>>
→エラーが表示されなくなる
試しにモジュールを追加してみる。
対象 : jinja2-2.8
■環境
Windows 7 Ultimate (64bit)
+ IronPython 2.7.5
■追加手順
(1)jinja2を入手
→jinja2-2.8.tar.gz (2015/08/26時点の最新)
(2)解凍した中の「jinja2」フォルダをIronPythonインストール先の「Lib\site-packages」以下へコピー
(3)テキストファイル「jinja2.pth」を作成し、テキスト「jinja2」(フォルダ名)を記述
(4)上で作成したテキストファイルを「Lib\site-packages」へ配置
-----
ここで、IronPython Consoleを起動して確認してみると・・・
>>> import jinja2
Traceback (most recent call last):
(省略)
ImportError: No module named markupsafe
→markupsageが無いと怒られる。
-----
(5)markupsafeを入手
→Markupsafe-0.23.tar.gz(2015/08/26時点の最新)
(6)解凍した中の「markupsafe」フォルダを同様に「Lib\site-packages」以下へコピー
(7)テキストファイル「markupsafe.pth」を作成し、テキスト「markupsafe」を記述
(8)上で作成したテキストファイルを「Lib\site-packages」へ配置
■確認
>>> import jinja2
>>>
→エラーが表示されなくなる
Pythonに触れてみる(2)
触ってみない事には始まらないので、何も考えずConsoleを起動してみます。
[スタート]メニューから[IronPython 2.7]→[IronPython Console]
「何かを書いてみる」というレベルではないので、シンプルが一番。
エディタとしてVisual Studio環境を利用するのは
かなり先の話かも知れません。
■お約束の「Hello World!」
>>> print "Hello World!"
Hello World!
-----
せっかく .NET Frameworkが利用出来るので、ちょっと脱線するようですが
>>> import System.Console
>>> System.Console.WriteLine("Hello World!")
Hello World!
■数値や文字
なんて事のない、変数に値を入れて、printで出力するだけ。
>>> value1 = 3
>>> value2 = "string"
>>>
>>> print value1
3
>>> print value2
string
-----
単純に演算を含めてみると
>>> print value1 + 2
5
>>> print value2 + "!!"
string!!
-----
数値と文字で演算(1)
>>> print value1 + value2
→数値と文字(文字列)の加算で怒られます。。(安直過ぎ)
数値を文字に変換する必要がありました。
>>> print str(value1) + value2
3string
-----
数値と文字で演算(2)
>>> print value2 * value1
stringstringstring
→*3(value1)でvalue2の文字列が3回繰り返されます!!
PowerShellでも「文字列*(数値)」で繰り返しの結果が得られますが、ちょっと不思議な感覚が抜けません。。
■リスト
要素(数値や文字など)の並びを作る?
>>> numlist = (10, 20, 30)
>>> print numlist
(10, 20, 30)
-----
リストの要素にアクセス
>>> print numlist[1]
20
→0始まりなので、[1]は2番目の要素
>>> print numlist[-1]
30
→末尾方向からの参照ができる!(新鮮な感じがします)
仕方がないかも知れませんが、先頭からは0開始で末尾からは1開始なのは
少し気持ち悪いかも知れません。。
numlist | 10 | 20 | 30 |
先頭からの添え字 | [0] | [1] | [2] |
末尾からの添え字 | [-3] | [-2] | [-1] |
Pythonに触れてみる(1)
とりあえず触れてみようと考えて、環境を準備しました。
IronPython 2.7
最初に検索をかけて見て、いくつかの選択肢がある事が分かり迷いましたが...
始める前から考え過ぎても仕方がないので、以下の理由からIronPythonを選びました。
・.NET Frameworkが使える
少なくとも、スタートは純粋にPythonに触れられれば良いと考えているので、意味のない理由かも知れませんが、何か不都合が出た時に道具を変えれば良いだけと思います。
■環境
Windows 7 Ultimate Service Pack 1 (64bit)
+ Visual Studio 2013
■インストール
・Python Tools for Visual Studio
・IronPython-2.7.5
登録:
投稿 (Atom)