投稿者: nishimotz

  • Windows + Python + Conda

    昨日は第4回の「すごい広島 with Python」でした。
    前回の報告:

    Interface as Mimesis


    このときに py.exe による Windows 環境での Python の切り替えについて詳しく書かなかったので、このブログでその続きを書きます。
    昨日は「もくもく会」だったので、ディープラーニングの環境構築にとりかかりました。行ってみると「話したいので聞いてほしい」という参加者が多数いらっしゃって、楽しかったのですが、私の作業はあまり進まなかったです。。
    やってみたこと:Windows に Theano を(GPU対応なしで)インストールした。
    環境:Windows 10 Home (64bit)
    もともと入っている Python:Python 2.7 (32bit) と Python 3.6 (32bit)
    もともとできていたこと:
    Python 3.6 を入れるとついてくる py.exe を使って py -2 または py -3 で両者を切り替えることができた。
    今回 theano をインストールした手順:

    1. Miniconda Windows 64bit installer をデフォルトのオプションでインストール
    2. コマンドプロンプトで
      > conda install numpy scipy mkl
    3. つづいてコマンドプロンプトで
      > conda install theano

    theano の動作確認:

    C:\work>python
     Python 3.6.1 |Continuum Analytics, Inc.| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)] on win32
     Type "help", "copyright", "credits" or "license" for more information.
     >>> import theano
     >>> from theano import tensor as T
     >>> x1 = T.scalar()
     >>> w1 = T.scalar()
     >>> w0 = T.scalar()
     >>> z1 = w1 * x1 + w0
     >>> net_input = theano.function(inputs=[w1, x1, w0], outputs=z1)
     >>> print('Net input: %.2f' % net_input(2.0, 1.0, 0.5))
     Net input: 2.50
     >>> import numpy as np
     >>> x = T.fmatrix(name='x')
     >>> x_sum = T.sum(x, axis=0)
     >>> calc_sum = theano.function(inputs=[x], outputs=x_sum)
     >>> ary = [[1, 2, 3], [1, 2, 3]]
     >>> print('Column sum:', calc_sum(ary))
     Column sum: [ 2. 4. 6.]
     >>> theano.config.floatX = 'float32'
     >>> ary = np.array([[1, 2, 3], [1, 2, 3]], dtype=theano.config.floatX)
     >>> print('Column sum:', calc_sum(ary))
     Column sum: [ 2. 4. 6.]

    この状態で python コマンドは今回インストールした Miniconda の Python になっています。
    この状態での Python 処理系の切り替えの確認:

    C:\work>py -3.6
    Python 3.6.1 |Continuum Analytics, Inc.| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    C:\work>py -3.6-32
    Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    C:\work>py -2
    Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.

    公式 Python は 32bit 版を入れて Anaconda 系 Python は 64bit 版を入れる、という使い分けが必要にはなりますが py.exe ですべての環境を切り替えられることを確認しました。
    なお Theano の動作確認は Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 第13章を引用しました。
     

  • 学習・発達支援員養成講座(広島)のお知らせ

    西本は NPO法人 日本インクルーシブ教育研究所 の理事として、発達障害への正しい理解の促進、支援方法の普及啓発のお手伝いをしています。
    この団体の主な活動は発達障害を持つ人や保護者の直接的なサポートではなく、そういう問題に関わっておられる専門家の育成や支援です。
    教師、特別支援教育のアシスタントや指導員の方々などが会員として、あるいは受講者として参加しておられます。
    IT技術者向けの勉強会やイベントと重なってあまり行事に参加できないのですが、ときどき講演会や講習会のお手伝いをすることがあり、現実の現場の厳しさ、そういう場で活躍しておられる専門家の知見や洞察の深さ、そして受講生の方のモチベーションの高さなど、驚くことが多いです。
    私は主に事務の効率化やツールのアドバイスをしたり、組織運営の方針について議論をさせてもらったりしています。
    チャットワークのNPO支援プログラムは私が提案したツールの一つで、すっかり定着して便利に活用されています。ありがたいプログラムだと思います。
    そんな日本インクルーシブ教育研究所ですが、現在、第3期の「学習・発達支援員養成講座」として、広島で「学習・発達支援員ライセンス」の取得を目指される受講者を募集しております。
    理事として日ごろあまり貢献できていないので、いまさらですが、ブログで告知を引用させていただきます:

    (お知らせ ここから)
    今年もNPO日本インクルーシブ教育研究所では、広島市内の小中学校へ専門性のある支援員を配置したいといった思いから、学習・発達支援員養成講座を開きます。
    この養成講座は東京都港区とNPOエッジ(ディスレクシア普及団体)が12年前に始めたもので、民間と行政が協働で専門性のある学習支援員を各学校に配置したところ、不登校がゼロになった、子どもの成績が上がった、子どもが自立して支援員が必要なくなった等数々の良い報告があります。
    また文科省のホームページにもこの制度の素晴しさが載っていますのでご覧ください↓
    http://www.mext.go.jp/a_menu/shotou/tokubetu/material/012/013.htm
    一刻も早く、今を生きる子ども達が適切なサポートを受けて大人になっていける学級づくりをしていけるよう、私達はその一助となりたいと思っています。
    第3期学習・発達支援員養成講座についてはこちらからご覧頂けます↓
    https://www.hikk.biz/seminar/lsa-3/
    この養成講座の説明会もございます↓
    https://www.hikk.biz/seminar/muryo-setsumeikai/
    この養成講座にはフォローアップ研修もあります↓
    https://www.hikk.biz/seminar/follow-up/
    また、学習・発達支援員ライセンス取得者には定期的に事例検討会に参加できるよう現在準備を進めています。
    発達障害のある子ども達が、周りからの無理解や不適切な対応により二次障害となり社会へ出ていけなくなるといった最悪の事態を防ぐためにも、どうか周知のご協力をよろしくお願いいたします。
    (お知らせ ここまで)

  • すごい広島 with Python &環境構築

    PyCon mini Hiroshima と Python Boot Camp in 広島 のフォローアップ活動として、毎月最後の水曜日の夜に「すごい広島 with Python」を開催しています。
    4月からはじめて3ヶ月やってみて、定着してきたので、やっと自信をもって報告してみることにしました。
    毎週水曜日の定例の「すごい広島」は「もくもく会」なのですが、「with Python」は、なにかやってみて知見を共有する、というところに力を入れていて、いまのところライトニングトーク形式での開催が続いています。
    私の提供した話題は5月は Django の環境構築、今月は某プログラミングコンテストの例題 with Python でした。
    先月も今月も「Linux で Python の作業環境の構築ではまった」という話を聞いたので、情報共有サイトで言い尽くされているのに、と思いながら、繰り返し喋ったことをもう一度ここで書いておきます。
    Linux のディストリビューションはたいてい Python 処理系に深く依存しています。なので、/usr/bin/python をアプリ開発に使ったり、逆に上書きしてしまうことは賢明ではありません。
    パッケージで Python を入れたいという気持ちは十分に理解できますが、私は Python Boot Camp テキスト をいちど読んで、その方法を理解することをお勧めします。
    このテキストでは Linux 向けの環境構築は「ソースからインストールしなさい」になっていて、不親切に見えるかも知れないのですが、実はデプロイ環境を作る手順として一番つぶしがきくというのが私の実感です。
    つまり、ソースから素直にコンパイル・インストールして、例えば /usr/local/bin/python3 が存在する状態を作り、その python3 に紐付いた環境で作業をするということです。
    丁寧にやるなら

    /usr/local/bin/python3 -m venv env

    で環境を作れば、ちゃんとその venv 環境では、自分がインストールした実行ファイルがパス指定なしに python や pip になってくれます。
    (コマンド名が python3 か python かも気にしなくていい)
    自分は /usr/local/bin しか使わないことにすれば、OS 環境への影響を心配する必要がありません。
    デプロイ環境でも、面倒がらずに最初に env/bin/activate するのが安全と思います。
    応用として、この手順は 2.7 系と 3 系を安全に切り替えたりするときにも有効です(詳細は省略)。
    Windows では複数のバージョンの Python を使い分けるときに、まず最新の Python 3 系をインストールして、ランチャー(py.exe)と venv (virtualenv) を使えば、どの処理系にも事前に PATH を通す必要がない(はず)です。
    上述した私の Django セットアップは「Boot Camp 方式」で仮想マシンの環境構築をしていますし、例題 with Python でも py.exe をちょこっと紹介しています。
    ふだんは私は個人的な技術メモは別のサイトにこっそり書いていますが、この件は、きっと同じようなことをいろんな人がしつこく書かないといけないのだろうと思って、めずらしくブログに技術ネタを書きました。