SlideShare a Scribd company logo
1 of 39
Elixir入門 第7回
Python/KerasをElixirから
繋いでアレコレする
~ 数値演算・ML+データ変換・並行分散=… ~
2017/10/25 ver0.5作成
1
1. 数値演算・ML+データ変換・並行分散=…
2. Pythonを使えるようにする
3. Elixirを使えるようにする
4. ElixirからPythonを呼び出す
5. Kerasを使えるようにする
6. ElixirからKerasを呼び出す
7. Elixir分散データ処理→Keras ML
目次
2
1.統計・ML+データ変換・並行分散=…
3
1.数値演算・ML+データ変換・並行分散=…
ご存知とは思いますが、Pythonは、豊富なライブラリによる数値
演算、自動処理、理工学、統計・解析に強みがある言語です
最近は、TensorFlowやKeras、Chainerといった、機械学習
のベースプラットフォームとして、一躍有名になりました
一方、Elixirは、様々なデータのパターンマッチ (バイナリデータも
含む) が強力、かつ並行分散処理が得意で、データ加工・変換
をマルチプロセスで同時に実行する部分に強みをもった言語です
この2つを組み合わせることで、ビッグデータの分析や機械学習を
並行分散処理する、といった構築が可能となります
なお両言語は、スリムで凝縮された言語仕様により、「可読性」
と「高信頼性」、「高機能」を実現するといった共通点もあります
4
2.Pythonを使えるようにする
5
2.Pythonを使えるようにする
GUI環境 (Windows/Mac/Linux) がある場合、Python
環境の構築に「Anaconda」を使うと、Pythonパッケージのイン
ストールが簡単にでき、複数Python環境の使い分けもできます
6
2.Pythonを使えるようにする
ターミナルを起動します
7
2.Pythonを使えるようにする
PythonコマンドでREPLが起動することを確認します
exit()と打てば、Pythonを抜けて、ターミナルに戻ります
もしエラーが出たときは、前ページをやり直してください
LinuxやMacであれば、以下のように、pip単体をapt/yum
/BrewでインストールしてからPythonを入れることも可能です
# python
>>>
>>> exit()
#
# apt-get install pip
# pip install python
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
9
2.Pythonを使えるようにする
こんな感じのグラフが表示されるのを確認します
10
3.Elixirを使えるようにする
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
#
12
4.ElixirからPythonを呼び出す
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的なもの
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
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関数名を指定
16
4.ElixirからPythonを呼び出す
ElixirからのPython呼出でもグラフが表示できるのを確認します
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
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引数
以降に指定
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
20
5.Kerasを使えるようにする
21
5.Kerasを使えるようにする
Kerasは、TensorFlowをコアとして動作するラッパーライブラリで、
本来、数学を用いて、ニューラルネットワークやディープラーニング
を構築する必要があるところの大部分を代行してくれます
Kerasを使わず、TensorFlowそのままでコーディングした場合、
「学習」部分を数式に相当するコードで書くこととなります※が、
Kerasを使った場合は、数式を一切使わずとも、「学習」部分が
コーディングできるのが、最大の特徴です
https://keras.io/ja/
22
5.Kerasを使えるようにする
Anacondaから起動したターミナルで、Kerasをpipによりインス
トールします
PythonコマンドでREPLが起動し、Kerasがエラー無くimport
できれば、インストールは成功です
もしエラーが出たときは、前ページをやり直してください
# python
>>> import keras
Using TensorFlow backend.
>>>
# pip install keras
23
5.Kerasを使えるようにする
RNN (Recurrent Neural Network) という、時系列に特化
した学習モデルで「未来のデータ並びの予測」ができます
たとえば、単語の並びから、発言した人の感情が、どんな状態に
なっているかを推測する、といったような先読み分析に向いてます
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
…
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
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
27
5.Kerasを使えるようにする
予測した未来データは、緑のグラフで、元データ (青) のsin波を
再現しています
なお、学習時データ (赤) を見ると、元データと比べ、若干振幅
が縮んで学習しているため、未来データも徐々に縮んでいます
(ノイズがランダムに出ている影響)
28
6.ElixirからKerasを呼び出す
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
30
6.ElixirからKerasを呼び出す
Python単独と同様、sin波の予測が行われます
31
7.Elixir分散データ処理→Keras ML
32
7.Elixir分散データ処理→Keras ML
ここまでを組み合わせることで、Elixirから分析元データを渡し、
Kerasで機械学習による予測ができることがお分かりと思います
ただし、元データは、常にキレイとは限りません
そこで、Elixirのパターンマッチをフル活用し、データ加工・変換を
施した (≒前処理) 上で、クリーン化されたデータでKerasに渡し、
機械学習を行い、それをElixirに戻して、予測結果を更に加工・
変換し (≒後処理)、アプリケーションで利用する、という枠組み
を考えます
弊社は、国内人口の1/5のデータを持っており、その他の業務
データも多く蓄積しているため、こうしたフレームでのビッグデータ
分析の構築が欠かせません
33
LT版はここまで(^^)
34
続きは、12月末開催の
fukuoka.ex #4にて
35
fukuoka.ex #4の開催は、
下記クリックでお知らせきます
36
fukuoka.exでググってください
37
株式会社TechJIN
CTO when デジタルマーケッター
。 森 正和 = 。
{ XPer: 17, KernelHacker: 7 }
[ Elixir, ElixirScript, Elm, Keras ] |> 福岡信仰 |> 東京侵攻w
my favotite technology & implements.
Twitter
@piacere_ex
Qiita
@piacere
私をフォローいただいても
開催タイミング分かります
38
ご清聴ありがとうございます

More Related Content

What's hot

C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜UnityTechnologiesJapan002
 
Introduction to OpenCL (Japanese, OpenCLの基礎)
Introduction to OpenCL (Japanese, OpenCLの基礎)Introduction to OpenCL (Japanese, OpenCLの基礎)
Introduction to OpenCL (Japanese, OpenCLの基礎)Takahiro Harada
 
QoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/EloquentQoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/EloquentHideki Takase
 
ssh_configのススメ
ssh_configのススメssh_configのススメ
ssh_configのススメHisaharu Ishii
 
Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る wata2ki
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術までAkihiro Suda
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami
 
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCamlHaruka Oikawa
 
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Takuya Matsunaga
 
Parser combinatorってなんなのさ
Parser combinatorってなんなのさParser combinatorってなんなのさ
Parser combinatorってなんなのさcct-inc
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例Fixstars Corporation
 
Maxwell と Java CUDAプログラミング
Maxwell と Java CUDAプログラミングMaxwell と Java CUDAプログラミング
Maxwell と Java CUDAプログラミングNVIDIA Japan
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料一路 川染
 
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinxドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinxTakayuki Shimizukawa
 
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話Masahito Zembutsu
 
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会Akihiko Matuura
 
ParaViewでCSVの点群を表示する
ParaViewでCSVの点群を表示するParaViewでCSVの点群を表示する
ParaViewでCSVの点群を表示するRyogaSato1
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 

What's hot (20)

LXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoyaLXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoya
 
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
C#×LLVM=アセンブラ!? 〜詳説・Burstコンパイラー〜
 
Introduction to OpenCL (Japanese, OpenCLの基礎)
Introduction to OpenCL (Japanese, OpenCLの基礎)Introduction to OpenCL (Japanese, OpenCLの基礎)
Introduction to OpenCL (Japanese, OpenCLの基礎)
 
QoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/EloquentQoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/Eloquent
 
ssh_configのススメ
ssh_configのススメssh_configのススメ
ssh_configのススメ
 
Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る 
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
 
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
 
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
 
Parser combinatorってなんなのさ
Parser combinatorってなんなのさParser combinatorってなんなのさ
Parser combinatorってなんなのさ
 
CUDAメモ
CUDAメモCUDAメモ
CUDAメモ
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
Maxwell と Java CUDAプログラミング
Maxwell と Java CUDAプログラミングMaxwell と Java CUDAプログラミング
Maxwell と Java CUDAプログラミング
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinxドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
 
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話
 
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
 
ParaViewでCSVの点群を表示する
ParaViewでCSVの点群を表示するParaViewでCSVの点群を表示する
ParaViewでCSVの点群を表示する
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 

Viewers also liked

【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【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アプリをサクッと書いてみる」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」AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」fukuoka.ex
 
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版ありますAI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版ありますfukuoka.ex
 
Dots deep learning部_20161221
Dots deep learning部_20161221Dots deep learning部_20161221
Dots deep learning部_20161221陽平 山口
 
ニューラルネットワークの仕組みを学ぶ 20170623
ニューラルネットワークの仕組みを学ぶ 20170623ニューラルネットワークの仕組みを学ぶ 20170623
ニューラルネットワークの仕組みを学ぶ 20170623Hiroki Takahashi
 
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのかAtlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのかアトラシアン株式会社
 
古典的ゲームAIを用いたAlphaGo解説
古典的ゲームAIを用いたAlphaGo解説古典的ゲームAIを用いたAlphaGo解説
古典的ゲームAIを用いたAlphaGo解説suckgeun lee
 
【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較Ryota Suzuki
 
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video GenerationDeep Learning JP
 
AlphaGo Zero 解説
AlphaGo Zero 解説AlphaGo Zero 解説
AlphaGo Zero 解説suckgeun lee
 
Kerasで深層学習を実践する
Kerasで深層学習を実践するKerasで深層学習を実践する
Kerasで深層学習を実践するKazuaki Tanida
 
Tokyo webmining 2017-10-28
Tokyo webmining 2017-10-28Tokyo webmining 2017-10-28
Tokyo webmining 2017-10-28Kimikazu Kato
 
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習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 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017Carol Smith
 

Viewers also liked (16)

【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」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入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」
 
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版ありますAI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
 
Dots deep learning部_20161221
Dots deep learning部_20161221Dots deep learning部_20161221
Dots deep learning部_20161221
 
ニューラルネットワークの仕組みを学ぶ 20170623
ニューラルネットワークの仕組みを学ぶ 20170623ニューラルネットワークの仕組みを学ぶ 20170623
ニューラルネットワークの仕組みを学ぶ 20170623
 
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのかAtlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
Atlassian Japan Forum 2017 The Information Ageの現実 なぜ組織が構造改革を進めなければならないのか
 
古典的ゲームAIを用いたAlphaGo解説
古典的ゲームAIを用いたAlphaGo解説古典的ゲームAIを用いたAlphaGo解説
古典的ゲームAIを用いたAlphaGo解説
 
【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較【2017年】ディープラーニングのフレームワーク比較
【2017年】ディープラーニングのフレームワーク比較
 
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
[DL輪読会] MoCoGAN: Decomposing Motion and Content for Video Generation
 
AlphaGo Zero 解説
AlphaGo Zero 解説AlphaGo Zero 解説
AlphaGo Zero 解説
 
Kerasで深層学習を実践する
Kerasで深層学習を実践するKerasで深層学習を実践する
Kerasで深層学習を実践する
 
Pycon2017
Pycon2017Pycon2017
Pycon2017
 
Tokyo webmining 2017-10-28
Tokyo webmining 2017-10-28Tokyo webmining 2017-10-28
Tokyo webmining 2017-10-28
 
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習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 2017AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017
 

Similar to 【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」

JavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 AutumnJavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 AutumnKoji Ishimoto
 
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~Fujio Kojima
 
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPIPythonで始めるDropboxAPI
Pythonで始めるDropboxAPIDaisuke Igarashi
 
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介fukuoka.ex
 
Apache Spark チュートリアル
Apache Spark チュートリアルApache Spark チュートリアル
Apache Spark チュートリアルK Yamaguchi
 
Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術Naoki Aoyama
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料時響 逢坂
 
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesasm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesNoritada Shimizu
 
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装Shinya Akiba
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料時響 逢坂
 

Similar to 【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」 (20)

たのしい関数型
たのしい関数型たのしい関数型
たのしい関数型
 
JavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 AutumnJavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 Autumn
 
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
 
機械学習
機械学習機械学習
機械学習
 
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPIPythonで始めるDropboxAPI
Pythonで始めるDropboxAPI
 
boost tour 1.48.0 all
boost tour 1.48.0 allboost tour 1.48.0 all
boost tour 1.48.0 all
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
 
Boost Tour 1.50.0 All
Boost Tour 1.50.0 AllBoost Tour 1.50.0 All
Boost Tour 1.50.0 All
 
Apache Spark チュートリアル
Apache Spark チュートリアルApache Spark チュートリアル
Apache Spark チュートリアル
 
Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術Scala の関数型プログラミングを支える技術
Scala の関数型プログラミングを支える技術
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料
 
Python opt
Python optPython opt
Python opt
 
Boost tour 1_40_0
Boost tour 1_40_0Boost tour 1_40_0
Boost tour 1_40_0
 
ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門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 gamesasm.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の実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
 
Pythonintro
PythonintroPythonintro
Pythonintro
 
秀スクリプトの話
秀スクリプトの話秀スクリプトの話
秀スクリプトの話
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料
 

More from fukuoka.ex

AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」fukuoka.ex
 
Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」fukuoka.ex
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」fukuoka.ex
 
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」fukuoka.ex
 
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」fukuoka.ex
 
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」fukuoka.ex
 
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」fukuoka.ex
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版ありますElixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版ありますfukuoka.ex
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますfukuoka.ex
 

More from fukuoka.ex (9)

AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
 
Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
 
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
 
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
 
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
 
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版ありますElixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
 

【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」