SlideShare une entreprise Scribd logo
1  sur  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
ご清聴ありがとうございます

Contenu connexe

Tendances

Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことMultibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことRecruit Lifestyle Co., Ltd.
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることShingo Fukui
 
[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送
[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送[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版の読みどころエキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころTakayuki Shimizukawa
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCdisc99_
 
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達Yusuke Wada
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)NTT DATA Technology & Innovation
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうKoichi Sakata
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門Shumpei Shiraishi
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門Kimikazu Kato
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル貴志 上坂
 
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記Hiroyuki Ohnaka
 
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)NTT DATA Technology & Innovation
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するYoshifumi Kawai
 

Tendances (20)

Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことMultibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
 
GitLabのAutoDevOpsを試してみた
GitLabのAutoDevOpsを試してみたGitLabのAutoDevOpsを試してみた
GitLabのAutoDevOpsを試してみた
 
Raspberry Piで始める自宅サーバー超入門
Raspberry Piで始める自宅サーバー超入門Raspberry Piで始める自宅サーバー超入門
Raspberry Piで始める自宅サーバー超入門
 
[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送
[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送
[Cloud OnAir] Cloud Run & Firestore で、実践アジャイル開発 2020年6月25日 放送
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
 
エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころエキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころ
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
 
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
 
実践 NestJS
実践 NestJS実践 NestJS
実践 NestJS
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
 
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
 

En vedette

【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
 

En vedette (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
 

Similaire à 【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勉強会発表資料時響 逢坂
 

Similaire à 【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勉強会発表資料
 

Plus de 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
 

Plus de 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から繋いでアレコレする」