PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018....

31
PROGRAMOWANIE FUNKCYJNE Bartosz Górka ITI 127228

Transcript of PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018....

Page 1: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

PROGRAMOWANIE FUNKCYJNE

Bartosz Goacuterka ITI 127228

Plan prezentacji

Języki funkcyjne - co to takiego

Erlang

Elixir

Aplikacje i rozwiązania programistyczne

Języki funkcyjne w uczeniu maszynowym

BartoszGorka96

Programowanie funkcyjne

Odmiana programowania deklaratywnego

Programowanie za pomocą wyrażeń nie

instrukcji

Unikanie zmian stanu i mutacji

Eliminacja side-effects poprzez

idempotentne funkcje

Wywodzi się z rachunku lambda

BartoszGorka96

Języki funkcyjneScala

R (statystyka)

Haskell

Erlang

Elixir

Lisp

JavaScript Python Ruby

BartoszGorka96

Założenia

Funkcja wyższego rzędu

Funkcja przyjmuje bądź zwraca jako

argument inną funkcję

Dostarczanie generycznych algorytmoacutew

parametryzowanych przez programistę

BartoszGorka96

Założenia

Czyste funkcje i wyrażenia

Bez skutkoacutew ubocznych (pamięć bądź

operacje IO)

Używane do optymalizacji kodu

Dla niezależnych kolejność wykonania

może być optymalizowana

BartoszGorka96

Założenia

Rekurencja

Większość językoacutew pozwala na

nieskończoną rekurencję

Dane nie podlegają mutacji - zwracane

poprzez wynik i akumulowane

BartoszGorka96

Założenia

Przejrzystość referencji

Brak operacji przypisania

Wartość zmiennej nigdy nie ulega

zmianie po zdefiniowaniu

Eliminacja efektoacutew ubocznych referencji

BartoszGorka96

Object-Oriented Programming patterns

BartoszGorka96

BartoszGorka96

Functional programming design patterns by Scott Wlaschin [NDC London 2014]

OOP in Functional Programming by Wojtek Mach

[ElixirConfEU 2016]

FP vs and OOP

BartoszGorka96

Zastosowania w przemyśle

Erlang - Ericsson [Open Telecom Platform]

Facebook Amazon Heroku

WhatsApp

Scala - MapReduce

BartoszGorka96

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 2: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Plan prezentacji

Języki funkcyjne - co to takiego

Erlang

Elixir

Aplikacje i rozwiązania programistyczne

Języki funkcyjne w uczeniu maszynowym

BartoszGorka96

Programowanie funkcyjne

Odmiana programowania deklaratywnego

Programowanie za pomocą wyrażeń nie

instrukcji

Unikanie zmian stanu i mutacji

Eliminacja side-effects poprzez

idempotentne funkcje

Wywodzi się z rachunku lambda

BartoszGorka96

Języki funkcyjneScala

R (statystyka)

Haskell

Erlang

Elixir

Lisp

JavaScript Python Ruby

BartoszGorka96

Założenia

Funkcja wyższego rzędu

Funkcja przyjmuje bądź zwraca jako

argument inną funkcję

Dostarczanie generycznych algorytmoacutew

parametryzowanych przez programistę

BartoszGorka96

Założenia

Czyste funkcje i wyrażenia

Bez skutkoacutew ubocznych (pamięć bądź

operacje IO)

Używane do optymalizacji kodu

Dla niezależnych kolejność wykonania

może być optymalizowana

BartoszGorka96

Założenia

Rekurencja

Większość językoacutew pozwala na

nieskończoną rekurencję

Dane nie podlegają mutacji - zwracane

poprzez wynik i akumulowane

BartoszGorka96

Założenia

Przejrzystość referencji

Brak operacji przypisania

Wartość zmiennej nigdy nie ulega

zmianie po zdefiniowaniu

Eliminacja efektoacutew ubocznych referencji

BartoszGorka96

Object-Oriented Programming patterns

BartoszGorka96

BartoszGorka96

Functional programming design patterns by Scott Wlaschin [NDC London 2014]

OOP in Functional Programming by Wojtek Mach

[ElixirConfEU 2016]

FP vs and OOP

BartoszGorka96

Zastosowania w przemyśle

Erlang - Ericsson [Open Telecom Platform]

Facebook Amazon Heroku

WhatsApp

Scala - MapReduce

BartoszGorka96

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 3: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Programowanie funkcyjne

Odmiana programowania deklaratywnego

Programowanie za pomocą wyrażeń nie

instrukcji

Unikanie zmian stanu i mutacji

Eliminacja side-effects poprzez

idempotentne funkcje

Wywodzi się z rachunku lambda

BartoszGorka96

Języki funkcyjneScala

R (statystyka)

Haskell

Erlang

Elixir

Lisp

JavaScript Python Ruby

BartoszGorka96

Założenia

Funkcja wyższego rzędu

Funkcja przyjmuje bądź zwraca jako

argument inną funkcję

Dostarczanie generycznych algorytmoacutew

parametryzowanych przez programistę

BartoszGorka96

Założenia

Czyste funkcje i wyrażenia

Bez skutkoacutew ubocznych (pamięć bądź

operacje IO)

Używane do optymalizacji kodu

Dla niezależnych kolejność wykonania

może być optymalizowana

BartoszGorka96

Założenia

Rekurencja

Większość językoacutew pozwala na

nieskończoną rekurencję

Dane nie podlegają mutacji - zwracane

poprzez wynik i akumulowane

BartoszGorka96

Założenia

Przejrzystość referencji

Brak operacji przypisania

Wartość zmiennej nigdy nie ulega

zmianie po zdefiniowaniu

Eliminacja efektoacutew ubocznych referencji

BartoszGorka96

Object-Oriented Programming patterns

BartoszGorka96

BartoszGorka96

Functional programming design patterns by Scott Wlaschin [NDC London 2014]

OOP in Functional Programming by Wojtek Mach

[ElixirConfEU 2016]

FP vs and OOP

BartoszGorka96

Zastosowania w przemyśle

Erlang - Ericsson [Open Telecom Platform]

Facebook Amazon Heroku

WhatsApp

Scala - MapReduce

BartoszGorka96

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 4: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Języki funkcyjneScala

R (statystyka)

Haskell

Erlang

Elixir

Lisp

JavaScript Python Ruby

BartoszGorka96

Założenia

Funkcja wyższego rzędu

Funkcja przyjmuje bądź zwraca jako

argument inną funkcję

Dostarczanie generycznych algorytmoacutew

parametryzowanych przez programistę

BartoszGorka96

Założenia

Czyste funkcje i wyrażenia

Bez skutkoacutew ubocznych (pamięć bądź

operacje IO)

Używane do optymalizacji kodu

Dla niezależnych kolejność wykonania

może być optymalizowana

BartoszGorka96

Założenia

Rekurencja

Większość językoacutew pozwala na

nieskończoną rekurencję

Dane nie podlegają mutacji - zwracane

poprzez wynik i akumulowane

BartoszGorka96

Założenia

Przejrzystość referencji

Brak operacji przypisania

Wartość zmiennej nigdy nie ulega

zmianie po zdefiniowaniu

Eliminacja efektoacutew ubocznych referencji

BartoszGorka96

Object-Oriented Programming patterns

BartoszGorka96

BartoszGorka96

Functional programming design patterns by Scott Wlaschin [NDC London 2014]

OOP in Functional Programming by Wojtek Mach

[ElixirConfEU 2016]

FP vs and OOP

BartoszGorka96

Zastosowania w przemyśle

Erlang - Ericsson [Open Telecom Platform]

Facebook Amazon Heroku

WhatsApp

Scala - MapReduce

BartoszGorka96

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 5: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Założenia

Funkcja wyższego rzędu

Funkcja przyjmuje bądź zwraca jako

argument inną funkcję

Dostarczanie generycznych algorytmoacutew

parametryzowanych przez programistę

BartoszGorka96

Założenia

Czyste funkcje i wyrażenia

Bez skutkoacutew ubocznych (pamięć bądź

operacje IO)

Używane do optymalizacji kodu

Dla niezależnych kolejność wykonania

może być optymalizowana

BartoszGorka96

Założenia

Rekurencja

Większość językoacutew pozwala na

nieskończoną rekurencję

Dane nie podlegają mutacji - zwracane

poprzez wynik i akumulowane

BartoszGorka96

Założenia

Przejrzystość referencji

Brak operacji przypisania

Wartość zmiennej nigdy nie ulega

zmianie po zdefiniowaniu

Eliminacja efektoacutew ubocznych referencji

BartoszGorka96

Object-Oriented Programming patterns

BartoszGorka96

BartoszGorka96

Functional programming design patterns by Scott Wlaschin [NDC London 2014]

OOP in Functional Programming by Wojtek Mach

[ElixirConfEU 2016]

FP vs and OOP

BartoszGorka96

Zastosowania w przemyśle

Erlang - Ericsson [Open Telecom Platform]

Facebook Amazon Heroku

WhatsApp

Scala - MapReduce

BartoszGorka96

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 6: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Założenia

Czyste funkcje i wyrażenia

Bez skutkoacutew ubocznych (pamięć bądź

operacje IO)

Używane do optymalizacji kodu

Dla niezależnych kolejność wykonania

może być optymalizowana

BartoszGorka96

Założenia

Rekurencja

Większość językoacutew pozwala na

nieskończoną rekurencję

Dane nie podlegają mutacji - zwracane

poprzez wynik i akumulowane

BartoszGorka96

Założenia

Przejrzystość referencji

Brak operacji przypisania

Wartość zmiennej nigdy nie ulega

zmianie po zdefiniowaniu

Eliminacja efektoacutew ubocznych referencji

BartoszGorka96

Object-Oriented Programming patterns

BartoszGorka96

BartoszGorka96

Functional programming design patterns by Scott Wlaschin [NDC London 2014]

OOP in Functional Programming by Wojtek Mach

[ElixirConfEU 2016]

FP vs and OOP

BartoszGorka96

Zastosowania w przemyśle

Erlang - Ericsson [Open Telecom Platform]

Facebook Amazon Heroku

WhatsApp

Scala - MapReduce

BartoszGorka96

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 7: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Założenia

Rekurencja

Większość językoacutew pozwala na

nieskończoną rekurencję

Dane nie podlegają mutacji - zwracane

poprzez wynik i akumulowane

BartoszGorka96

Założenia

Przejrzystość referencji

Brak operacji przypisania

Wartość zmiennej nigdy nie ulega

zmianie po zdefiniowaniu

Eliminacja efektoacutew ubocznych referencji

BartoszGorka96

Object-Oriented Programming patterns

BartoszGorka96

BartoszGorka96

Functional programming design patterns by Scott Wlaschin [NDC London 2014]

OOP in Functional Programming by Wojtek Mach

[ElixirConfEU 2016]

FP vs and OOP

BartoszGorka96

Zastosowania w przemyśle

Erlang - Ericsson [Open Telecom Platform]

Facebook Amazon Heroku

WhatsApp

Scala - MapReduce

BartoszGorka96

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 8: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Założenia

Przejrzystość referencji

Brak operacji przypisania

Wartość zmiennej nigdy nie ulega

zmianie po zdefiniowaniu

Eliminacja efektoacutew ubocznych referencji

BartoszGorka96

Object-Oriented Programming patterns

BartoszGorka96

BartoszGorka96

Functional programming design patterns by Scott Wlaschin [NDC London 2014]

OOP in Functional Programming by Wojtek Mach

[ElixirConfEU 2016]

FP vs and OOP

BartoszGorka96

Zastosowania w przemyśle

Erlang - Ericsson [Open Telecom Platform]

Facebook Amazon Heroku

WhatsApp

Scala - MapReduce

BartoszGorka96

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 9: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Object-Oriented Programming patterns

BartoszGorka96

BartoszGorka96

Functional programming design patterns by Scott Wlaschin [NDC London 2014]

OOP in Functional Programming by Wojtek Mach

[ElixirConfEU 2016]

FP vs and OOP

BartoszGorka96

Zastosowania w przemyśle

Erlang - Ericsson [Open Telecom Platform]

Facebook Amazon Heroku

WhatsApp

Scala - MapReduce

BartoszGorka96

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 10: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

BartoszGorka96

Functional programming design patterns by Scott Wlaschin [NDC London 2014]

OOP in Functional Programming by Wojtek Mach

[ElixirConfEU 2016]

FP vs and OOP

BartoszGorka96

Zastosowania w przemyśle

Erlang - Ericsson [Open Telecom Platform]

Facebook Amazon Heroku

WhatsApp

Scala - MapReduce

BartoszGorka96

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 11: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

FP vs and OOP

BartoszGorka96

Zastosowania w przemyśle

Erlang - Ericsson [Open Telecom Platform]

Facebook Amazon Heroku

WhatsApp

Scala - MapReduce

BartoszGorka96

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 12: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Zastosowania w przemyśle

Erlang - Ericsson [Open Telecom Platform]

Facebook Amazon Heroku

WhatsApp

Scala - MapReduce

BartoszGorka96

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 13: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

ErlangJęzyk programowania dla rozwiązań

wspoacutełbieżnych

Obsługa rozproszonych systemoacutew

wymagających długotrwałej pracy

Wysoka odporność na awarie

Wspiera hot-swamping kodu

Twoacuterca Joe Armstrong rok 1986

BartoszGorka96

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 14: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Elixir

Język programowania dla rozwiązań

wspoacutełbieżnych skalowalnych

Funkcyjny dynamiczny

Idea lekkich procesoacutew

Procesy izolowane wymiana poprzez komunikaty

Uruchamiany na maszynie wirtualnej Erlanga

Twoacuterca Joseacute Valim rok 2012

BartoszGorka96

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 15: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

ElixirTypy danych Integers Floats Atoms (Symbols)

Ranges

Kolekcje Tuples Linked Lists Binaries Maps

Typy systemowe PIDs Ports

Funkcje

Pattern Matching

Guards

ldquoMagicznyrdquo |gt

BartoszGorka96

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 16: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Ciąg Fibonacciego

BartoszGorka96

-module(fib) -export([fib1])

fib(1) -gt 1 fib(2) -gt 1 fib(N) -gt fib(N - 2) + fib(N - 1)

defmodule Fibonacci do def fib(0) do 0 def fib(1) do 1 def fib(n) do fib(n-1) + fib(n-2) end

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 17: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Sumowanie z cache

BartoszGorka96

-module(sum_server) -behaviour(gen_server) -export([ start0 sum3 init1 handle_call3 handle_cast2 handle_info2 terminate2 code_change3 ])

start() -gt gen_serverstart(MODULE [] []) sum(Server A B) -gt gen_servercall(Server sum A B) init(_) -gt ok undefined handle_call(sum A B _From State) -gt reply A + B State handle_cast(_Msg State) -gt noreply State handle_info(_Info State) -gt noreply State terminate(_Reason _State) -gt ok code_change(_OldVsn State _Extra) -gt ok State

defmodule SumServer do use GenServer

def start() do __MODULE__ |gt GenServerstart(nil)

end

def sum(server a b) do GenServercall(server sum a b)

end

def handle_call(sum a b _from state) do reply a + b state

end end

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 18: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Procesy

BartoszGorka96

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 19: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

BartoszGorka96

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 20: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

BartoszGorka96

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 21: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

BartoszGorka96

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 22: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Phoenix Framework

BartoszGorka96

The Road to 2 Million Websocket Connections in Phoenix

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 23: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

BartoszGorka96

+

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 24: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

BartoszGorka96

+ +

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 25: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

TensorFlexTensorflow dla języka Elixir

Powstały w ramach Google Summer of

Code 2018

Inspiracja frameworkiem Keras dla języka Python

NIFs (Native Implemented Functions) we

wspoacutełpracy z Tensorflow C API

Efektywny i przystępny kod elixirowy dla uczenia

mazynowego

BartoszGorka96

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 26: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Problemy

Wolna arytmetyka zmiennopozycyjna w

BEAM

Użycie NIFs likwiduje ten problem lecz

tracimy wspoacutełbieżność

Mała społeczność pracująca nad ML

Brak SciPy Numpy albo ich podobieństw

BartoszGorka96

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 27: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Problemy

BartoszGorka96

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 28: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Eksperymenty

BartoszGorka96

Deep Learning with Elixir

Building and Training a Multi-Layered Neural Network

Machine Learning with Elixir and Phoenix by Eric Weinstein ElixirConf EU 2017

Intro to Machine Learning by Jesse J Anderson Code Beam SF 2018

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 29: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Pytania

BartoszGorka96

Feedback

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 30: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

Dziękuję za uwagę

BartoszGorka96

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96

Page 31: PROGRAMOWANIE FUNKCYJNE · Intro to Machine Learning by Jesse J. Anderson Code Beam SF 2018. Pytania? BartoszGorka96 Feedback? Dziękuję za uwagę! BartoszGorka96. Referencje What

ReferencjeWhat is Erlang

OTP in Erlang

Elixir Language

FP is not opposite to OOP

Google Summer of Code 2018

Tensorflex introduction

Elixir in Action second edition ISBN 9781617295027

BartoszGorka96