Soumettre la recherche
Mettre en ligne
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
•
10 j'aime
•
4,143 vues
fukuoka.ex
Suivre
データのパターンマッチと並行分散処理が強いElixirと、Python/Kerasによる機械学習を組み合わせると、ビッグデータ分析の強力なフレームを作れる、という内容です
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 39
Recommandé
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
Hideki Takase
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
FIWARE Big Data Ecosystem : Cygnus and STH Comet
FIWARE Big Data Ecosystem : Cygnus and STH Comet
fisuda
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
Yoichi Kawasaki
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
Measurement of Maximum new NAT-sessionsper second / How to send packets
Measurement of Maximum new NAT-sessionsper second / How to send packets
@ otsuka752
Railsで作るBFFの功罪
Railsで作るBFFの功罪
Recruit Lifestyle Co., Ltd.
Recommandé
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
高い並列性能と耐障害性を持つElixirとNervesでIoTの新しいカタチを切り拓く
Hideki Takase
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
FIWARE Big Data Ecosystem : Cygnus and STH Comet
FIWARE Big Data Ecosystem : Cygnus and STH Comet
fisuda
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
Yoichi Kawasaki
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
Measurement of Maximum new NAT-sessionsper second / How to send packets
Measurement of Maximum new NAT-sessionsper second / How to send packets
@ otsuka752
Railsで作るBFFの功罪
Railsで作るBFFの功罪
Recruit Lifestyle Co., Ltd.
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
Recruit Lifestyle Co., Ltd.
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
GitLabのAutoDevOpsを試してみた
GitLabのAutoDevOpsを試してみた
富士通クラウドテクノロジーズ株式会社
Raspberry Piで始める自宅サーバー超入門
Raspberry Piで始める自宅サーバー超入門
VirtualTech Japan Inc./Begi.net Inc.
[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送
[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送
Google Cloud Platform - Japan
クロージャデザインパターン
クロージャデザインパターン
Moriharu Ohzu
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころ
Takayuki Shimizukawa
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
Yusuke Wada
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
Koichi Sakata
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
Shumpei Shiraishi
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
Kimikazu Kato
実践 NestJS
実践 NestJS
Ayumi Goto
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
Hiroyuki Ohnaka
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
NTT DATA Technology & Innovation
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
fukuoka.ex
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
fukuoka.ex
Contenu connexe
Tendances
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
Recruit Lifestyle Co., Ltd.
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
GitLabのAutoDevOpsを試してみた
GitLabのAutoDevOpsを試してみた
富士通クラウドテクノロジーズ株式会社
Raspberry Piで始める自宅サーバー超入門
Raspberry Piで始める自宅サーバー超入門
VirtualTech Japan Inc./Begi.net Inc.
[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送
[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送
Google Cloud Platform - Japan
クロージャデザインパターン
クロージャデザインパターン
Moriharu Ohzu
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころ
Takayuki Shimizukawa
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
Yusuke Wada
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
Koichi Sakata
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
Shumpei Shiraishi
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
Kimikazu Kato
実践 NestJS
実践 NestJS
Ayumi Goto
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
Hiroyuki Ohnaka
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
NTT DATA Technology & Innovation
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
Tendances
(20)
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
GitLabのAutoDevOpsを試してみた
GitLabのAutoDevOpsを試してみた
Raspberry Piで始める自宅サーバー超入門
Raspberry Piで始める自宅サーバー超入門
[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送
[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送
クロージャデザインパターン
クロージャデザインパターン
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころ
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
実践 NestJS
実践 NestJS
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
En vedette
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
fukuoka.ex
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
fukuoka.ex
AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」
fukuoka.ex
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
fukuoka.ex
Dots deep learning部_20161221
Dots deep learning部_20161221
陽平 山口
ニューラルネットワークの仕組みを学ぶ 20170623
ニューラルネットワークの仕組みを学ぶ 20170623
Hiroki Takahashi
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
アトラシアン株式会社
古典的ゲームAIを用いたAlphaGo解説
古典的ゲームAIを用いたAlphaGo解説
suckgeun lee
【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較
Ryota Suzuki
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
Deep Learning JP
AlphaGo Zero 解説
AlphaGo Zero 解説
suckgeun lee
Kerasで深層学習を実践する
Kerasで深層学習を実践する
Kazuaki Tanida
Pycon2017
Pycon2017
Yuta Kashino
Tokyo webmining 2017-10-28
Tokyo webmining 2017-10-28
Kimikazu Kato
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習
Kimikazu Kato
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
Carol Smith
En vedette
(16)
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
Dots deep learning部_20161221
Dots deep learning部_20161221
ニューラルネットワークの仕組みを学ぶ 20170623
ニューラルネットワークの仕組みを学ぶ 20170623
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
古典的ゲームAIを用いたAlphaGo解説
古典的ゲームAIを用いたAlphaGo解説
【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
AlphaGo Zero 解説
AlphaGo Zero 解説
Kerasで深層学習を実践する
Kerasで深層学習を実践する
Pycon2017
Pycon2017
Tokyo webmining 2017-10-28
Tokyo webmining 2017-10-28
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
Similaire à 【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
たのしい関数型
たのしい関数型
Shinichi Kozake
JavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 Autumn
Koji Ishimoto
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
Fujio Kojima
機械学習
機械学習
ssusere8ae711
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPI
Daisuke Igarashi
boost tour 1.48.0 all
boost tour 1.48.0 all
Akira Takahashi
Introduction of Python
Introduction of Python
Tomoya Nakayama
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
fukuoka.ex
Boost Tour 1.50.0 All
Boost Tour 1.50.0 All
Akira Takahashi
Apache Spark チュートリアル
Apache Spark チュートリアル
K Yamaguchi
Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術
Naoki Aoyama
Ekmett勉強会発表資料
Ekmett勉強会発表資料
時響 逢坂
Python opt
Python opt
Mikio Kubo
Boost tour 1_40_0
Boost tour 1_40_0
Akira Takahashi
ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門
Computational Materials Science Initiative
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
Noritada Shimizu
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
Shinya Akiba
Pythonintro
Pythonintro
Mikio Kubo
秀スクリプトの話
秀スクリプトの話
Hiroshi Tokumaru
Ekmett勉強会発表資料
Ekmett勉強会発表資料
時響 逢坂
Similaire à 【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
(20)
たのしい関数型
たのしい関数型
JavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 Autumn
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
機械学習
機械学習
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPI
boost tour 1.48.0 all
boost tour 1.48.0 all
Introduction of Python
Introduction of Python
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
Boost Tour 1.50.0 All
Boost Tour 1.50.0 All
Apache Spark チュートリアル
Apache Spark チュートリアル
Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術
Ekmett勉強会発表資料
Ekmett勉強会発表資料
Python opt
Python opt
Boost tour 1_40_0
Boost tour 1_40_0
ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
Pythonintro
Pythonintro
秀スクリプトの話
秀スクリプトの話
Ekmett勉強会発表資料
Ekmett勉強会発表資料
Plus de fukuoka.ex
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
fukuoka.ex
Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」
fukuoka.ex
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
fukuoka.ex
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
fukuoka.ex
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
fukuoka.ex
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
fukuoka.ex
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
fukuoka.ex
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
fukuoka.ex
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
fukuoka.ex
Plus de fukuoka.ex
(9)
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
1.
Elixir入門 第7回 Python/KerasをElixirから 繋いでアレコレする ~ 数値演算・ML+データ変換・並行分散=…
~ 2017/10/25 ver0.5作成
2.
1 1. 数値演算・ML+データ変換・並行分散=… 2. Pythonを使えるようにする 3.
Elixirを使えるようにする 4. ElixirからPythonを呼び出す 5. Kerasを使えるようにする 6. ElixirからKerasを呼び出す 7. Elixir分散データ処理→Keras ML 目次
3.
2 1.統計・ML+データ変換・並行分散=…
4.
3 1.数値演算・ML+データ変換・並行分散=… ご存知とは思いますが、Pythonは、豊富なライブラリによる数値 演算、自動処理、理工学、統計・解析に強みがある言語です 最近は、TensorFlowやKeras、Chainerといった、機械学習 のベースプラットフォームとして、一躍有名になりました 一方、Elixirは、様々なデータのパターンマッチ (バイナリデータも 含む) が強力、かつ並行分散処理が得意で、データ加工・変換 をマルチプロセスで同時に実行する部分に強みをもった言語です この2つを組み合わせることで、ビッグデータの分析や機械学習を 並行分散処理する、といった構築が可能となります なお両言語は、スリムで凝縮された言語仕様により、「可読性」 と「高信頼性」、「高機能」を実現するといった共通点もあります
5.
4 2.Pythonを使えるようにする
6.
5 2.Pythonを使えるようにする GUI環境 (Windows/Mac/Linux) がある場合、Python 環境の構築に「Anaconda」を使うと、Pythonパッケージのイン ストールが簡単にでき、複数Python環境の使い分けもできます
7.
6 2.Pythonを使えるようにする ターミナルを起動します
8.
7 2.Pythonを使えるようにする PythonコマンドでREPLが起動することを確認します exit()と打てば、Pythonを抜けて、ターミナルに戻ります もしエラーが出たときは、前ページをやり直してください LinuxやMacであれば、以下のように、pip単体をapt/yum /BrewでインストールしてからPythonを入れることも可能です # python >>> >>> exit() # #
apt-get install pip # pip install python
9.
8 2.Pythonを使えるようにする Pythonのサンプルとして、ノイズ入りsin波のグラフ表示をします 以下で起動します import numpy as
np def sin( x, T = 100 ): return np.sin( 2.0 * np.pi * x / T ) def noisy_sin( T = 100, ampl = 0.05 ): x = np.arange( 0, 2 * T + 1 ) noise = ampl * np.random.uniform( low = - 1.0, high = 1.0, size = len( x ) ) return sin( x ) + noise def plot(): f = noisy_sin() plt.figure() plt.plot( range( 0, len( f ) ), f, color = "b", label = "sin" ) plt.legend() plt.show() py_sample.py # pip install matplotlib # python predict_sin.py
10.
9 2.Pythonを使えるようにする こんな感じのグラフが表示されるのを確認します
11.
10 3.Elixirを使えるようにする
12.
11 3.Elixirを使えるようにする インストーラ (Macの場合はBrew) でインストールした後、iexと いうElixirのREPLを起動します Ctrl+cを2回入力すると、iexを抜けて、ターミナルに戻ります #
iex Interactive Elixir (1.5.2) - press Ctrl+C to exit (type h() ENTER for help) iex(1)> iex(1)> BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution #
13.
12 4.ElixirからPythonを呼び出す
14.
13 4.ElixirからPythonを呼び出す Anacondaから起動したターミナルで、Elixir PJを作成します ※紫字の部分は、作成するプロジェクト名 (全部、小文字で打つこと) 以下のようなフォルダ/ファイルが作られます プログラミングするソースコードは、libフォルダ配下に作ります #
mix new pyex # cd pyex # pwd; find . | sort | sed '1d;s/^.//;s//([^/]*)$/|--1/;s//[^/|]*/| /g' /code/pyex |--_build |--config |--deps |--lib |--mix.exs |--README.md |--test mixはビルドツール ※Railsのbundler+rake的なもの
15.
14 4.ElixirからPythonを呼び出す Elixir/Erlangから、Pythonを呼び出すためのライブラリである 「ErlPort」をインストールするため、mix.exsに下記追加します 以下コマンドで、Elixirモジュールを取得します (要ネット接続) 以下コマンドで、Pythonモジュールをインストールします defmodule Pyex.Mixfile
do … defp deps do [ { :erlport, "~> 0.9.8" }, ] end end # mix deps.get # pip install erlport mix.exs
16.
15 4.ElixirからPythonを呼び出す lib/pyex.exを、お好きなエディタで以下の通り、書き換えます ファイル保存したら、以下コマンドでビルドします defmodule Pyex do def
plot_sin_noisy() do { :ok, py_exec } = :python.start( [ python_path: 'lib' ] ) :python.call( py_exec, :py_sample, :plot, [] ) end end # iex –S mix iex> Pyex.plot_sin_noisy lib/pyex.ex Pythonファイル名を指定 Python関数名を指定
17.
16 4.ElixirからPythonを呼び出す ElixirからのPython呼出でもグラフが表示できるのを確認します
18.
17 4.ElixirからPythonを呼び出す 単純に起動するだけで無く、値の受け渡しもできます Elixirから渡した値を、Python側で計算し、Elixirに戻せます lib/pyex.ex # recompile # iex
–S mix iex> Pyex.value_send_receive Pyex.value_send_receive( 3 ) received from python: 30 defmodule Pyex do … def value_receive( value ) do { :ok, py_exec } = :python.start( [ python_path: 'lib' ] ) result = :python.call( py_exec, :py_sample, :value_receive, [ value ] ) IO.puts "received from python: #{result}" end end … def value_receive( value ): return value * 10 py_sample.py
19.
18 4.ElixirからPythonを呼び出す クラスを呼び出すこともできます lib/pyex.ex defmodule Pyex do … def
value_receive( value ) do { :ok, py_exec } = :python.start( [ python_path: 'lib' ] ) result = :python.call( py_exec, :py_sample, :Sample, [] ) result = :python.call( py_exec, :py_sample, :"Sample.arrange", [ object, value ] ) IO.puts "received from python: #{result}" end end … def class Sample( object ): def __init__( self ): print( " on python: __init__()" ) self.message = "Hello " def arrange( self, name ): print( " on python: arrange()" ) return self.message + name.decode( "utf-8" ) py_sample.py Elixirから渡した文字列は、 Pythonだと、bytes型で解釈 されるので、str型に変換する クラスのインスタンスを生成 メソッド名をクラス名と共に指定 インスタンスを 第1引数に指定 引数を第2引数 以降に指定
20.
19 4.ElixirからPythonを呼び出す Elixirから渡した値を、Python側で計算し、Elixirに戻せます # recompile # iex
–S mix iex> Pyex.value_send_receive Pyex.value_send_receive( 3 ) received from python: 30
21.
20 5.Kerasを使えるようにする
22.
21 5.Kerasを使えるようにする Kerasは、TensorFlowをコアとして動作するラッパーライブラリで、 本来、数学を用いて、ニューラルネットワークやディープラーニング を構築する必要があるところの大部分を代行してくれます Kerasを使わず、TensorFlowそのままでコーディングした場合、 「学習」部分を数式に相当するコードで書くこととなります※が、 Kerasを使った場合は、数式を一切使わずとも、「学習」部分が コーディングできるのが、最大の特徴です https://keras.io/ja/
23.
22 5.Kerasを使えるようにする Anacondaから起動したターミナルで、Kerasをpipによりインス トールします PythonコマンドでREPLが起動し、Kerasがエラー無くimport できれば、インストールは成功です もしエラーが出たときは、前ページをやり直してください # python >>> import
keras Using TensorFlow backend. >>> # pip install keras
24.
23 5.Kerasを使えるようにする RNN (Recurrent Neural
Network) という、時系列に特化 した学習モデルで「未来のデータ並びの予測」ができます たとえば、単語の並びから、発言した人の感情が、どんな状態に なっているかを推測する、といったような先読み分析に向いてます
25.
24 5.Kerasを使えるようにする ノイズ入りサイン波を予測するKerasコードをPythonで組みます predict_sin.py import numpy as
np from keras.models import Sequential from keras.layers import Dense, Activation from keras.layers.recurrent import LSTM from keras.optimizers import Adam from keras.callbacks import EarlyStopping def sin( x, T = 100 ): return np.sin( 2.0 * np.pi * x / T ) def noisy_sin( T = 100, ampl = 0.05 ): x = np.arange( 0, 2 * T + 1 ) noise = ampl * np.random.uniform( low = - 1.0, high = 1.0, size = len( x ) ) return sin( x ) + noise def make_dataset( datas, n_prev = 100 ): data = [] target = [] maxlen = 25 for i in range( len( datas ) - maxlen ): data.append( datas[ i: i + maxlen ] ) target.append( datas[ i + maxlen ] ) re_data = np.array( data ).reshape( len( data ), maxlen, 1 ) re_target = np.array( target ).reshape( len( data ), 1 ) return re_data, re_target …
26.
25 5.Kerasを使えるようにする (続き) 学習モデルを構築し、学習させます … def predict(): f
= noisy_sin() g, h = make_dataset( f ) length_of_sequence = x.shape[ 1 ] in_out_neurons = 1 n_hidden = 300 model = Sequential() model.add( LSTM( n_hidden, batch_input_shape = ( None, length_of_sequence, in_out_neurons ), return_sequences = False ) ) model.add( Dense( in_out_neurons ) ) model.add( Activation( "linear" ) ) optimizer = Adam( lr = 0.001 ) model.compile( loss = "mean_squared_error", optimizer = optimizer ) early_stopping = EarlyStopping( monitor = "val_loss", mode = "min", patience = 20 ) model.fit( x, y, batch_size = 300, epochs = 100, validation_split = 0.1, callbacks = [ early_stopping ] ) future_test = g[ 175 ].T time_length = future_test.shape[ 1 ] future_result = np.empty( ( 0 ) ) … predict_sin.py
27.
26 5.Kerasを使えるようにする (続き) 学習モデルで未来データを予測し、グラフ表示します … for step2
in range( 400 ): test_data = np.reshape( future_test, ( 1, time_length, 1 ) ) batch_predict = model.predict( test_data ) future_test = np.delete( future_test, 0 ) future_test = np.append( future_test, batch_predict ) future_result = np.append( future_result, batch_predict ) predicted = model.predict( x ) plt.figure() plt.plot( range( 0, len( f ) ), f, color = "b", label = "sin" ) plt.plot( range( 25, len( predicted ) + 25 ), predicted, color = "r", label = "predict" ) plt.plot( range( len( f ), len( future_result ) + len( f ) ), future_result, color = "g", label = "future" ) plt.legend() plt.show() predict() predict_sin.py
28.
27 5.Kerasを使えるようにする 予測した未来データは、緑のグラフで、元データ (青) のsin波を 再現しています なお、学習時データ
(赤) を見ると、元データと比べ、若干振幅 が縮んで学習しているため、未来データも徐々に縮んでいます (ノイズがランダムに出ている影響)
29.
28 6.ElixirからKerasを呼び出す
30.
29 6.ElixirからKerasを呼び出す Kerasを使うPythonも当然呼び出せます ファイル保存したら、以下コマンドでビルドします defmodule Pyex do def
predict() do { :ok, py_exec } = :python.start( [ python_path: 'lib' ] ) :python.call( py_exec, :predict_sin, :predict, [] ) end end # iex –S mix iex> Pyex.predict lib/pyex.ex
31.
30 6.ElixirからKerasを呼び出す Python単独と同様、sin波の予測が行われます
32.
31 7.Elixir分散データ処理→Keras ML
33.
32 7.Elixir分散データ処理→Keras ML ここまでを組み合わせることで、Elixirから分析元データを渡し、 Kerasで機械学習による予測ができることがお分かりと思います ただし、元データは、常にキレイとは限りません そこで、Elixirのパターンマッチをフル活用し、データ加工・変換を 施した (≒前処理)
上で、クリーン化されたデータでKerasに渡し、 機械学習を行い、それをElixirに戻して、予測結果を更に加工・ 変換し (≒後処理)、アプリケーションで利用する、という枠組み を考えます 弊社は、国内人口の1/5のデータを持っており、その他の業務 データも多く蓄積しているため、こうしたフレームでのビッグデータ 分析の構築が欠かせません
34.
33 LT版はここまで(^^)
35.
34 続きは、12月末開催の fukuoka.ex #4にて
36.
35 fukuoka.ex #4の開催は、 下記クリックでお知らせきます
37.
36 fukuoka.exでググってください
38.
37 株式会社TechJIN CTO when デジタルマーケッター 。
森 正和 = 。 { XPer: 17, KernelHacker: 7 } [ Elixir, ElixirScript, Elm, Keras ] |> 福岡信仰 |> 東京侵攻w my favotite technology & implements. Twitter @piacere_ex Qiita @piacere 私をフォローいただいても 開催タイミング分かります
39.
38 ご清聴ありがとうございます