作成者別アーカイブ: k-utsubo

k-utsubo について

技術士(情報工学部門)

gcc6でRMecabのインストールはエラー

大学のサーバのGCCが6.2だったのでメモ。

RMeCabのインストール

エラーになる。

GCC6だとエラーになるので、GCC5台にしないと駄目です。

因みにソースコードはinstall.packageのときにオプションを付けると消されないでローカルファイルに残ります。

ubuntu16.04で画面のlock解除

Ubuntu16.04のGnomeデスクトップではデフォルトで画面のLockがOnになっています。
そのため、画面を操作しないとロックされてしまい、毎回パスワードを入力する必要があります。

この画面のlockをさせない方法は以下の通り

  • Application-SystemTools-Settingsを選択
  • Privacyを選択
  • ScreenLockを選択しAutomatic Screen LockをOff

cygwin+python+mecab+PyCharmで開発環境を作る

概要

MacからWindwosに乗り換えて一番困るのが開発環境。Pycharmを使ってのpythonの開発はMac以上に面倒です。
WindowsはWindows用のコンパイルされたpythonやmecabを使うのが一般的ですが、モジュールの追加など結構面倒なので、Cygwinを使っている人も多いと思います。
今回、Cygwin上にPythonとMecabをインストールし、それをPycharmから使う環境を作成したのでメモを残します。

環境

* windows 10
* cygwin x86_64
* pycharm 2017.1

cygwinのインストール

ここからsetup-x86_64.exeをダウンロードしインストールします。特別なことは何もしません。通常にインストールします。
余裕があればapt-cygを入れておくと便利です。

pythonのインストール

cygwin上にpythonを入れておきます。自分の場合には2.7系を入れます。

teratermのインストール

cygwinのターミナルは使いにくいのでteratermを入れておきます。teratermにはcygwin用のTerminalもついているのでそちらを起動してCygwinにログインします。

mecabのインストール

Mecabのインストールはソースコードからインストールします。Mecabのバージョンは0.996を使いますがそのままではコンパイルできないので、こちらのパッチを用いてインストールします。

nkfのインストール

nkfをソースからインストールします。
こちらからダウンロードしインストールします

ipadic

こちらからipadicをダウンロードします。ソースコードになります。これをコンパイルするのですがそのままだとどうも文字化けしてしまいます。ので、UTF-8に変換しておきます

環境変数

windowsの環境変数を設定します。システムの詳細設定から、システムのプロパティを開き、詳細設定タブの環境変数からpathに以下を追加しておきます。これでWindows側からもCygwinのコマンドが呼び出せます。

python-mecab

pipでインストールするとエラーになります。ソースコードからインストールします。ここからmecab-python-0.996.tar.gzをダウンロードしコンパイルします

pycharm

ここからダウンロードしインストールします。
インストールしたのちにfileメニューのdefault settingsからproject interpreterを選択し、c:\cygwin64\bin\python2.7.exeを設定します

これでPycharmからCygwinのPythonを利用できます。

Pythonのマルチプロセスとマルチスレッド

マルチスレッドとマルチプロセス

マルチスレッドとマルチプロセスは似ているようで違います。マルチプロセス間の実行中の値は、各プロセス間で別になっていますが、マルチスレッドの場合には変数を共用するのでちょっと注意が必要です。

実行環境

  • cray xc40
  • python 2.7.13

マルチプロセス

ここを参考に

03_multi.py

36プロセス

03_multi_36.sh

実行スクリプト

結果

1プロセス

03_multi_1.sh

結果

かなり速度が違います

マルチスレッド

ここを参考

03_multi.py

36プロセス

04_thread_36.sh

実行スクリプト

結果

1プロセス

04_thread_1.sh

実行スクリプト

結果

python+SQLiteでlike文

ここを参考に、

Asciiの場合

Unicodeの場合

tagはunicode string

ValueError: unsupported format character ‘Y’ (0x59) at index 51

MySQL+Pythonのエラー

このようなエラーが出るときの対応。

これだと上記エラーが発生します。

ここに解決策が載っていました。

ポイントはsql文の文字列をformat()するだけ

lambdaのAPIにキーを付与する

AWSの仕様がすぐ変わるのでメモ。

こちらの記事を参考にAPIGatewayにAPIキーをつけようとしたのですが、2017.5.16現在、仕様が変わってしまっているようでそのままでは設定できませんでした。

記事の中頃「API Keyの追加」の部分ですが、API Stage AssociationはAPI Keyのページには存在しません。

以下の手順となります

  • 左メニューのUsagePlansというメニューをクリック
  • createでNameに何か適当な名前を入れる。
  • リクエスト数にリミットをつけないのならば、Enable throttlingとEnable Quotaはチェックを外す
  • Add API Stageでデプロイ済みのAPIとStageを選択しチェックマークをクリック。Nextをクリック
  • Add API Key to Usage Planをクリックし、作成済みのAPI Keyの名前を入力。チェックマークをクリックしDone

これでAPIキーが付加されます。

AWSのlambdaでJavaを使う

ちょっとハマったのでメモ。JavaはMavenでコンパイルします。

Test.java

pom.xml

コンパイル

Lambdaへアップロード

  • zipファイルをアップロード
  • Configulationを設定
  • Runtime Java 8
    Handler com.example.Test::handler

     これで動きます。テストの際に与えるパラメタの値が表示されます

torchをeclipseでデバッグ

torchというディープラーニングのライブラリが有ります。Luaで書かれているようであまり馴染みがなかったのですが、論文を読んでいて、サンプルをどうしても動かしたくてデバッグできる環境の構築を行った時のメモです

環境

  • MacOS Seirra 10.12.4
  • eclipse 4.6.3

こちらにubuntuの場合の設定方法があるのですが、Macではちょっと違いました。

luaインストール

これだけです

torchインストール

公式の手順通りにやれば問題なく終了します。

eclipseプラグイン

下記URLからLuaプラグインをインストールします。1.4.1が最新でした
http://download.eclipse.org/ldt/releases/milestones/

eclipseの設定

これが一番ハマりました。

環境設定 > Lua > Interpreters で Addで追加します。

Interpreter type Lua JIT 2.0
Interpreter executable /Users/yourname/torch/install/bin/luajit
Interpreter name Lua JIT
interpreter arguments -lenv -e “io.stdout:setvbuf(‘no’); if os.getenv(‘DEBUG_MODE’) then require ‘debugger’ ; require ‘debugger.plugins.ffi’end”
Linked Execution Environment lua-5.1

また、Import…で/Users/yourname/torch/install/bin/torch-activateをインポートし環境変数を追加します

実行

こちらのサンプルを動かしてみます。
EclipseでLuaプロジェクトを作成し、srcディレクトリ内にファイルを作成します。
ここでポイントは、ファイルのパスをコード中に記述する際にはプロジェクトのトップからの相対パスを書きます。

download.py

右クリックのRunで実行できます

Tensorflowのエラー

Tensorflowをバージョンアップすると、昔動いていたスクリプトが動かなくなったりします

こんなエラーとか。

こちらを参照し修正します。

これを

これに変更