Tensorflowのclassify_image.pyにElectronでGUIを被せてみた
こんにちは、最近次男は保育園の帰り道、自分で走って帰るといって聞かず、自宅までの走って帰る日々です。長男も同じような時期にそういうことがあったので、そういうもんなんだと諦めて、次男の走りに付き合ってます。@kjunichiです。
GPUを使えるTensorflowをWin,Macに入れたものの
tensorflowを入れたものの、動かし方が、実はよくわからず、Python APIのみの pipで入れても、実はサンプルコードがsite-lib配下にインストールされてることすら 最近まで知りませんでしたw。
classify_image.pyにElectronでGUIをつけてみた。
Linux,Windowsで画像ファイルをドロップすると、classify_image.pyで画像分類できるように してみた。
これで、子供たちと、簡単に画像ファイルを選んで、人工知能にどんな写真かを調べてもらうことが できました。
pipでいれたTensorflowのサンプルコードのありか
import site print(site.getsitepackages())
これで、pipでインストールされるインストール先のディレクトリ一覧が取得できる。 環境によって、複数のパスが返されるので、この中からtensorflowディレクトリを探す。
画像ファイルをドロップして読み込む
大昔、HTML5の修業であれこれ作った
から持ってきた。
iphoneの写真だとEXIFを考慮する必要ありだった
これまた大昔、
を作ったが、この知識が役に立った。
Exifでカメラの回転情報を保持しているので、 これ考慮してclassify_image.pyに渡さないと分類結果に影響が出た。
もっとも、オリジナルのJPEGファイルをそのまま、classify_image.pyに渡せばこの辺り、Tensorflow側で 処理してくれたのかもしれないが。。
成果物
Windowsの場合はCondaのPython3を優先して動かすようにしてます。 その他のプラットフォームではパスに登録されてるPython3を優先して、そこにtensorflowがあれば、 それを使う感じにしてます。
関連記事
- Windows(MSVC)でmrubyからGPU対応のTensorflowを動かせた
- 第3回:3月26日(日)Blender勉強会(UE4よちよち勉強会_スピンオフ)@HDE(渋谷)に行ってきた
- Tensorflowのclassify_image.pyをWebアプリ化した
- pytorchによるcycleGANの実装をWindowsで動かした
- Raspberry Pi3でTensorflowをビルドして動かした
12年前の記事
5年前の記事
WindowsでDocker ToolboxとMSのOpenSSHのサーバーと共存するには
こんばんは、熱の引いた長男ですが、顔やそのほか体のあちこちに発疹が出てきて、週明けは通院が確定の@kjunichiです。
背景
だいぶ前からMS公式のOpenSSHでWindowsにsshdサーバーがたてられることを知っていいたので、 先日、chocolatey経由でやってみたが、どうもDOSの内部コマンド的なdir等は実行できるものの、mirb等の外部コマンドが 使えず、実行してもなにも起こらず、プロンプトが返ってきました。
現状、ほんとにDocker Toolboxがsshd的なサービスをインストール時に設定しているのか確証はありませんが、 そのほか気になるソフトもないので、疑っている状況です。
対策
Docker Toolboxは触らず、ChocolateyでいれるOpenSSHのポートを変更することで対応できました。
choco install openssh -params "/SSHServerFeature /SSHServerPort:20022"
変更したポートに別のマシンからsshでログインして、無事mirb等の外部コマンドも使えるようになりました。
関連記事
12年前の記事
11年前の記事
3年前の記事
1年後の記事
Windows(MSVC)でmrubyからGPU対応のTensorflowを動かせた
こんにちは、長男が高熱をだし、時期が時期なので、インフルエンザを疑ったのですが、陰性で、その後もしばらく高熱がつづいたのですが、今では熱が下がり、大好きなYouTubeを見てます。@kjunichiです。
やったこと
タイトルの通りですが、以前このブログでも話題にしたmrubyかJuliaを呼び出せるmruby-juliaをWindowsのMSVC環境で動かせるようにして、 そこからJuliaからPythonを呼び出せるPyCallを経由して、すでにセットアップ済みのGPU対応のTensorflowを動かせました
mruby-juliaをwindows(MSVC)に対応することに成功したので、#mruby からGPUありの#tensorflow が動かせた! https://t.co/LCUGa1P9Ee pic.twitter.com/KrcAqh7VDB
— kjunichi (@kjunichi) 2017年1月27日
JuliaをMSVC環境で動かそうとして分かったこと
.libファイルが必要
JuliaのWindows版はMinGWでビルドされているので、MSVCで動かすには.libファイルを作る必要がりました。
MSVCではCではJuliaを組み込めない
さらに、CからJuliaを呼び出すことは出来ず、C++からでないと、ダメでした。 そのため、mruby-juliaは元々Cオンリーであったのを、JuliaのAPIを叩く箇所をC++化して対応しました。 (mrubyでC++を使ったmrbgemを使うとちょっと問題があるのですが、これは別の記事で書く予定)
mrubyからTensorflowを呼び出す
事前準備
Juliaであらかじめ環境変数PYTHONをGPUが有効なTensorflowが使えるPythonに設定した状態で、
Pkb.add("PyCall")
もしくは、
Pkb.build("PyCall")
しておく。
サンプルコード
j=Julia.new j.eval("using PyCall") j.eval("string(@pyimport tensorflow as tf)") j.eval('sess = tf.Session()') j.eval('a = tf.constant(10)') j.eval('b = tf.constant(32)') j.eval('sess[:run](pyeval("a + b", a=a, b=b))') p j.eval('string(sess[:run](pyeval("a + b", a=a, b=b)))')
成果物
関連記事
- mruby-juliaでPythonもmrubyから呼び出せるようになった - non vorrei lavorare
- Tensoflowのclassify_image.pyにElectronでGUIを被せてみた
- Raspberry Pi3でTensorflowをビルドして動かした
12年前の記事
11年前の記事
- vlcがインストールできない
- SETI@home について
- 最大表示解像度
- Starting tomcat5: /usr/bin/rebuild-jar-repository: error: could not find jta Java extension for this JVM