質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Elixir

Elixirは、並列処理や関数型に特化した、Erlang VM (BEAM) 上で動作する汎用プログラミング言語です。分散システム、耐障害性、ソフトリアルタイムシステムなどの機能を持ちます。

Q&A

解決済

2回答

1283閲覧

Elixirからkerasを呼び出した際の事について。

Hayato1201

総合スコア220

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Elixir

Elixirは、並列処理や関数型に特化した、Erlang VM (BEAM) 上で動作する汎用プログラミング言語です。分散システム、耐障害性、ソフトリアルタイムシステムなどの機能を持ちます。

0グッド

0クリップ

投稿2018/02/27 05:51

https://qiita.com/piacere/items/c1af7b6ce472db83cff6
以上のサイトに従ってElixirからkerasを呼び出せるようになりました。自分が使用しているデータセットでも同じ様に、行った所実行できたのですが、kerasの学習の進行状況を表示がおかしくなります。
通常だと以下のようになります。
1710/1710 [==============================] - 10s 6ms/step - loss: 1.5044 - acc: 0.5836 - val_loss: 2.8046 - val_acc: 0.1479
Epoch 2/100
1710/1710 [==============================] - 8s 5ms/step - loss: 0.6558 - acc: 0.7936 - val_loss: 2.3610 - val_acc: 0.3411
Epoch 3/100
1710/1710 [==============================] - 8s 5ms/step - loss: 0.5066 - acc: 0.8409 - val_loss: 2.2140 - val_acc: 0.3391

しかしElixirから呼び出した際は、以下の様に文字化け?の様な感じになります。

100/1710 [>.............................] - ETA: 16s - loss: 3.9383 - acc: 0.0400^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H1100/1710 [==================>...........] - ETA: 0s - loss: 1.8918 - acc: 0.4791 ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H1710/1710 [==============================] - 9s 5ms/step - loss: 1.5196 - acc: 0.5655 - val_loss: 2.2404 - val_acc: 0.5788
Epoch 2/100
100/1710 [>.............................] - ETA: 0s - loss: 0.5967 - acc: 0.7700^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^1200/1710 [====================>.........] - ETA: 0s - loss: 0.6965 - acc: 0.7842^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^1710/1710 [==============================] - 8s 5ms/step - loss: 0.6963 - acc: 0.7895 - val_loss: 1.9084 - val_acc: 0.5811

これでも、結局この表示がおかしいだけで問題なく動いているのですが、これは何故起きるのでしょうか?また、Elixirから呼び出す事により、マルチコアでプログラムを回せるので処理が速くなるとのことですが、実際そんな変わっていない様です。現在デュアルコアのPC実行しているのでそもそもそんなには変わらないという事でしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

プログレスバーの表示が崩れる件は、Elixir と Python の連携に使っている ErlPort の リファレンスマニュアル を確認しましたが、ErlPort 側の設定で対応するのは無理そうでした。

mkgrei さんが教えてくれた fitverbose02 に設定して、プログレスバーを非表示にするのがよさそうです。

また、Elixirから呼び出す事により、マルチコアでプログラムを回せるので処理が速くなるとのことですが、実際そんな変わっていない様です。

Elixir から呼び出しても Keras の処理が速くなることはないと思います。Elixir がマルチコアで実行できるのは Elixir で書いたプログラムです。上の記事ですと「データクレンジング」と「集計・統合」といった機械学習の前処理がそれにあたります。記事の主張は、前処理が Python や他の言語よりも簡潔かつ直感的に書け、しかも非常に簡単にマルチコア化できる、といったことです。(記事には書かれていませんが、Elixir ですと複数のサーバーを使用して分散処理させることも簡単にできます)

Keras のバックエンドに使っている TensorFolw は C++ という高速な言語で書かれていて、特に設定しなくても、学習をマルチコアで実行します。(記事に載っている predict_sin.py を Python から直に実行して CPU の使用率を見ると、全てのコアが使われることが確認できます) ですから機械学習の部分をいま以上に高速化する余地はあまりなさそうに思えます。

投稿2018/02/27 14:35

tatsuya6502

総合スコア2035

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Hayato1201

2018/03/03 13:06

コメント遅れて申し訳ないです。 そうだったんですね、理解しました!またしてもありがとうございまいた!
guest

0

^Hは削除の文字コードなので、文字の処理についてうまくかみ合っていないですね。

fitverbose02にしても解決できる気がします。

投稿2018/02/27 09:27

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問