Big Data and Machine Learning Workshop - Day 7 @ UTACM

151
1 ۱۳۹۵ ﺗﺎﺑﺴﺘﺎ ﺻﺪﯾﻘﯽﻣﯿﺮ ﻣﺎﺷﯿﻦ ﮔﯿﺮ ﯾﺎ ﺑﺰ ﻫﺎ ﻫﺎﺑﺮ ﮐﺎ ﺑﺮ ﮔﺬ@amirsedighi :ﺘﺮ4 ﺗﻮ:ﯾﻤﯿﻞ [email protected] ﻓﻠﻮ ﺗﻨﺴﻮ+ ﺻﻨﻌﺘﯽﺳﺘﻔﺎ ﺑﺮ ﺗﺎ ﭘﺮ ﯾﮏ ﺑﻬﺒﻮ- ﻫﻔﺘﻢ

Transcript of Big Data and Machine Learning Workshop - Day 7 @ UTACM

1

تابستانن ۱۳۹۵

اامیر صدیقی

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین

@amirsedighi تو4تر: [email protected]اایمیل:

ررووزز هفتم - بهبودد یک پرووژژهه تا براایی ااستفاددهه صنعتی + تنسوررفلو

اامیر صدیقی

موسس:

2

معرفی

http://recommender.ir http://helio.ir http://commentum.ir

@amirsedighi تو4تر: [email protected]اایمیل:

3

فرصتی براایی تجدید میثاقق با کدگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

اامرووزز ااوونایی که اازز کد نویسی لذتت نمی‌برنن…

4

فرصتی براایی تجدید میثاقق با کدگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

اامرووزز ااوونایی که اازز کد نویسی لذتت نمی‌برنن، فرصتی براایی تجدید نظر ددااررنن…

5

بهینه ساززیی پرووژژهه‌ها براایی ااستفاددهه صنعتیگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

ددررسس اامرووزز ددوو بخش ددااررهه: ۱. ااررتقا یک نمونه اازز سروویس‌هایی که طی ددووررهه اانجامم ددااددیم به یک نمونه صنعتی

۲. نصب وو ررااهه‌ااندااززیی تنسوررفلو + مروورر یک خوددآآموزز

6

بهینه ساززیی پرووژژهه‌ها براایی ااستفاددهه صنعتیگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

پرووژژهه هایی که طی ددووررهه اانجامم ددااددیم خصوصیاتت مشترکی ددااشتند:کدبیس کوچکی ددااشتند بزبانن جاوواا توسعه ددااددیم

اازز مدیریت پرووژژهه Maven ااستفاددهه کرددیم اازز اابزااررهایی حرفه‌اایی ددرر ززمینه یاددگیریی ماشین بهرهه می‌برددند

براایی حل قسمتی اازز یک مشکل به کارر می‌آآمدند (براایی ددنیایی ووااقعی کافی نبوددند) سروویس گراا نبوددند

خوددکارر نبوددند مقیاسس‌پذیر نبوددند

7

چه بهبوددهایی ددرر نظر ددااررید؟گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

پرووژژهه هایی که طی ددووررهه اانجامم ددااددیم خصوصیاتت مشترکی ددااشتند:کدبیس کوچکی ددااشتند بزبانن جاوواا توسعه ددااددیم

اازز مدیریت پرووژژهه Maven ااستفاددهه کرددیم اازز اابزااررهایی حرفه‌اایی ددرر ززمینه یاددگیریی ماشین بهرهه می‌برددند

براایی حل قسمتی اازز یک مشکل به کارر می‌آآمدند (براایی ددنیایی ووااقعی کافی نبوددند) سروویس گراا نبوددند

خوددکارر نبوددند مقیاسس‌پذیر نبوددند

8

چه بهبوددهایی ددرر نظر ددااررید؟گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

پرووژژهه هایی که طی ددووررهه اانجامم ددااددیم خصوصیاتت مشترکی ددااشتند:کدبیس کوچکی ددااشتند بزبانن جاوواا توسعه ددااددیم

اازز مدیریت پرووژژهه Maven ااستفاددهه کرددیم اازز اابزااررهایی حرفه‌اایی ددرر ززمینه یاددگیریی ماشین بهرهه می‌برددند

براایی حل قسمتی اازز یک مشکل به کارر می‌آآمدند (براایی ددنیایی ووااقعی کافی نبوددند) سروویس گراا نبوددند

خوددکارر نبوددند مقیاسپذیر نبوددند

9

ااررتقا پرووژژهه‌ها به سطحی قابل قبوللگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

10

ااررتقا پرووژژهه‌ها به سطحی قابل قبوللگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

11

ااررتقا پرووژژهه‌ها به سطحی قابل قبوللگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

12

ااررتقا پرووژژهه‌ها به سطحی قابل قبوللگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

Microservices Architecture

13

ااررتقا پرووژژهه‌ها به سطحی قابل قبوللگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

کدبیس کوچکی ددااشتند بزبانن جاوواا توسعه ددااددیم

اازز مدیریت پرووژژهه Maven ااستفاددهه کرددیم اازز اابزااررهایی حرفه‌اایی ددرر ززمینه یاددگیریی ماشین بهرهه می‌برددند

اامکانن ااتصالل به پرووژژهه‌هایی مشابه براایی حل مسائل ووااقعی سروویس گراایی براایی ااشترااکک‌گذاارریی منابع پرددااززشی وو ددااددهه‌‌اایی

خوددکارر ساززیی عملیاتت براایی اارراائه پیوسته خدمت مقیاسس‌پذیریی اافقی

14

کد‌هایی که نوشتیم: ررووزز ااووللگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.technobium -DartifactId=mahout-logistic-regression -DinteractiveMode=false

توسط ااسکریپت ززیر قالب پرووژژهه رراا به صوررتت خوددکارر طرااحی می‌کرددیم:

15

کد‌هایی که نوشتیم: ررووزز ااووللگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

Project Object Model

16

کد‌هایی که نوشتیم: ررووزز ااووللگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

17

کد‌هایی که نوشتیم: ررووزز ااووللگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

18

پیاددهه ساززییگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

کد بنویسیم

مروورر

19

پیاددهه ساززییگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

یک بنگاهه تخصصی ااررززیابی خوددرروو هایی ددست‌ددوومم براایی کنترلل صحت کیلومتر‌شمارر

(Odometer) به ما مرااجعه کرددهه

وو می‌خوااهد به کمک کامپیوتر وو ااتوماسیونن کیلومتر‌هایی

ددست‌کارریی شدهه رراا شناسایی کنیم.

مروورر

20

پیاددهه ساززییگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

21

مسئلهگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

صاحب بنگاهه معتقد ااست ااگر خوددرروویی کمتر اازز میزاانن متعاررفف سن خودد ررااهه‌ررفته، باید به عنواانن

مورردد مشکوکک شناسایی شودد.(عقل سلیم)

مروورر

22

مسئلهگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

ااطالعاتت ۲۱ خوددرروو رراا ددرر ااختیارر ما قراارر ددااددهه که شامل ستونن‌هایی نوعع، سن، کیلومتر وو تخمین ددرر مورردد تقلب

ااست.

مروورر

23

پیاددهه ساززیی - چه باید کردد؟گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

چه االگورریتم‌هایی مناسبند؟ چه ززبانن‌هایی برنامه‌نویسی مناسبند؟

چه سیستم‌عاملی؟ چقدرر طولل می‌کشه ااوولین نمونه رروو بنویسم؟

ااگر ددیتا ززیادد بشه، مشکل کارراایی پیداا نمی‌کنم؟ چطورر می‌تونم مطمئن بشم رَروِوشم ددررسته؟

آآیا کدیی که مینویسم پایدااررهه؟ مرددمم میتونن ززندگیشونن رروو بسپرنن به کد من؟

مروورر

24

پیاددهه ساززیی - چه باید کردد؟گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

چه االگورریتم‌هایی مناسبند؟ چه ززبانن‌هایی برنامه‌نویسی مناسبند؟

چه سیستم‌عاملی؟ چقدرر طولل می‌کشه ااوولین نمونه رروو بنویسم؟

ااگر ددیتا ززیادد بشه، مشکل کارراایی پیداا نمی‌کنم؟ چطورر می‌تونم مطمئن بشم رَروِوشم ددررسته؟

آآیا کدیی که مینویسم پایدااررهه؟ مرددمم میتونن ززندگیشونن رروو بسپرنن به کد من؟

متقلب بوددنن یا نبوددننززبانن‌هایی متعددد …

اایدهه‌اایی ندااررممخیلی ززیادد :(

)))):باید بپرسم اازز متخصصین

نمی ددوونم ووااقعا. باید ززیر لودد برهه.وولش کن‌ ااصال به ززحمتش نمی‌ااررززهه

مروورر

25

پیاددهه ساززیی - چه باید کردد؟گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

چه االگورریتم‌هایی مناسبند؟ چه ززبانن‌هایی برنامه‌نویسی مناسبند؟

چه سیستم‌عاملی؟ چقدرر طولل می‌کشه ااوولین نمونه رروو بنویسم؟

ااگر ددیتا ززیادد بشه، مشکل کارراایی پیداا نمی‌کنم؟ چطورر می‌تونم مطمئن بشم رَروِوشم ددررسته؟

آآیا کدیی که مینویسم پایدااررهه؟ مرددمم میتونن ززندگیشونن رروو بسپرنن به کد من؟

متقلب بوددنن یا نبوددننززبانن‌هایی متعددد …

اایدهه‌اایی ندااررممخیلی ززیادد :(

)))):باید بپرسم اازز متخصصین

نمی ددوونم ووااقعا. باید ززیر لودد برهه.وولش کن‌ ااصال به ززحمتش نمی‌ااررززهه

مروورر

26

یاددگیریی با نظاررتت به کمک آآپاچی ماهوتتگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

لجستیک ررگرااسیونن

یک مدلل آآمارریی ررگرسیونن براایی متغیرهایی وواابسته ددووسویی مانند: بیمارریی یا سالمت •مرگگ یا ززندگی •خرید یا عدمم خرید •ثبت نامم یا عدمم ثبت نامم •ووررشکسته شدنن یا ووررشکسته نشدنن•

مروورر

27

پیاددهه ساززیی - به بزررگانن ااقتداا کنیمگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

“تنبلی فضیلت ااست” آآرراا آآبرااهامیانن

مروورر

28

یاددگیریی با نظاررتت به کمک آآپاچی ماهوتتگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

One of Components on the Shelf:

https://builds.apache.org/job/Mahout-Quality/javadoc/org/apache/mahout/classifier/sgd/OnlineLogisticRegression.html

مروورر

29

یاددگیریی با نظاررتت به کمک آآپاچی ماهوتتگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

LOGISTIC REGRESSION USING APACHE MAHOUT

Logistic regression is a supervised learning algorithm used to classify input data into a categories. If we have two possible categories, then we are using binary or binomial logistic regression and if we have more than three categories we are using multinomial logistic regression. For the binary logistic regression, the algorithm will find a mathematical function which best fits the training data. This function is the sigmoid function which takes values between 1 and 0. The classification algorithm will use the trained model function and will return the probability for a new input data to be in a category or another.

مروورر

30

یاددگیریی با نظاررتت - کشف تقلب گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

DETECT CAR MILEAGE FRAUD USING LOGISTIC REGRESSION

small 10 100000 0 small 10 200000 0 small 8 30000 1 small 3 10000 1 small 5 10000 1 medium 6 60000 0 medium 4 10000 1 medium 4 200000 0 medium 5 50000 1family 2 60000 0

Model Age Milage Result Model Age Milage Resultfamily 5 10000 1 family 4 200000 0 family 7 70000 1 family 1 20000 0 family 2 10000 1 sport 6 50000 1 sport 4 100000 0 sport 2 20000 1 sport 3 30000 1 sport 10 5000 1sport 10 100000 1 مروورر

31

یاددگیریی با نظاررتت - ملزووماتت گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

Prerequisites:

• Windows, Linux or Mac • Java 1.7 • Apache Maven 3

مروورر

32

CM - یاددگیریی با نظاررتتگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

Create the Maven project:

mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.technobium -DartifactId=mahout-logistic-regression -DinteractiveMode=false

مروورر

33

یاددگیریی با نظاررتت - تغlر نامم گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

Rename the default created App class to LogisticRegression

mv mahout-logistic-regression/src/main/java/com/technobium/App.java mahout-logistic-regression/src/main/java/com/technobium/LogisticRegression.java

مروورر

34

یاددگیریی با نظاررتت - وواابستگی‌ها گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

Add the Mahout and SLF4J libraries to this project:cd mahout-logistic-regression nano pom.xml

<dependencies> ... <dependency> <groupId>org.apache.mahout</groupId> <artifactId>mahout-core</artifactId> <version>0.9</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.7</version> </dependency> </dependencies>

مروورر

35

یاددگیریی با نظاررتت - پالگین بیلد وو نسخه گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

Add ُthe build configuration:

<build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build>

مروورر

36

یاددگیریی با نظاررتت - ددااددهه‌هایی آآموززشش گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

mkdir input

copy the file containing the training data, inputData.csv

مروورر

37

یاددگیریی با نظاررتت - کد تر وو تمیز گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

Edit the ClusteringDemo class file and add the following code:

مروورر

38

یاددگیریی با نظاررتت -ااجراا گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

Run the class by using the following command:

mvn compile mvn exec:java -Dexec.mainClass="com.technobium.LogisticRegression"

مروورر

39

یاددگیریی با نظاررتت - نتایج گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

RESULT

Pass: 0, Learning rate: 0.1759, Accuracy: 0.9615 Pass: 10, Learning rate: 0.0511, Accuracy: 0.9712 Pass: 20, Learning rate: 0.0303, Accuracy: 0.9712 ------------- Testing ------------- Probability of not fraud (0) = 0.090 Probability of fraud (1) = 0.910

a family car which is 10 years old and was used for 100000 kilometers. For this input, the algorithm tells us that there is 91% chances that the mileage of the car was manipulated. The decision was based on the data given as input during the training phase.

مروورر

40

یاددگیریی با نظاررتت -چگونه کارر کردد؟ گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

To automate the decision we will use the OnlineLogisticRegression algorithm from Apache Mahout. The input of the algorithm will be an array of Observation objects. Each Observation contains a vector with the car detail (type, age mileage) and the actual category according to the input data (1 manipulate or 0 not manipulated). The first element of the vector is the intercept term, which is important in order to obtain a accurate model and which has the value 1. You can see the intercept term in action also in simple linear regression. The model is trained 30 times and each 10th iteration we check its quality against the same input data set. If we had much more data available, we would have used a subset of the data for model quality check. The final step will be to use the model in order to predict the fraud probability for car data not present in the training data set.

How It Works?

مروورر

41

یاددگیریی با نظاررتت - خالصه گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

Typical usages for logistic regression are fraud detection, manufacturing error detection, weather prediction, mail filtering (spam or ham) or in medicine for case classification. Very close to linear regression this classification algorithm is one of the most used machine learning algorithms.

CONCLUSION

مروورر

42

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

ددست به کارر شیم

43

فایل پرووژژهه رروو کمی تغlر میدممگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

44

فایل پرووژژهه رروو کمی تغlر میدممگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

45

پکیج‌هایی خوددمونن رروو می‌ساززممگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

46

کالسس ااصلی رروو ددرر پکیج‌هایی جدید میساززممگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

47

براایی آآززمایش ددررستی یک ااجراایی آآززمایشیگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

48

کالسس ااصلی رراا پیاددهه ساززیی می‌کنیمگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

49

کالسس ااصلی رراا پیاددهه ساززیی می‌کنیمگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

50

به ررووشش‌هایی مختلف می‌تواانم ااجراا کنمگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

51

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه ررووشش‌هایی مختلف می‌تواانم ااجراا کنم

52

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه ررووشش‌هایی مختلف می‌تواانم ااجراا کنم

53

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه ررووشش‌هایی مختلف می‌تواانم ااجراا کنم

54

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننپرووژژهه رراا به رریزسروویس ااررتقا ددهیم

55

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانننگاهی به یک پرووژژهه حدااقلی سپرینگ‌بوتت

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.springframework</groupId> <artifactId>gs-spring-boot</artifactId> <version>0.1.0</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <properties> <java.version>1.8</java.version> </properties> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>

56

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننتجهیز پرووژژهه به سپرینگ‌بوتت

57

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننتجهیز پرووژژهه به سپرینگ‌بوتت

58

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننتجهیز پرووژژهه به سپرینگ‌بوتت

59

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننتجهیز پرووژژهه به سپرینگ‌بوتت

60

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااعمالل تغlرااتی کوچک ددرر کالسس ااصلی

61

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااجراایی پرووژژهه سپرینگ‌بوتت شدهه

mvn spring-boot:run

62

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااجراایی پرووژژهه سپرینگ‌بوتت شدهه

63

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااجراایی پرووژژهه سپرینگ‌بوتت شدهه

64

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااجراایی پرووژژهه سپرینگ‌بوتت شدهه

65

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننHTTP اافزووددنن کنترلر براایی تماسس رروویی

66

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننHTTP اافزووددنن کنترلر براایی تماسس رروویی

67

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننHTTP اافزووددنن کنترلر براایی تماسس رروویی

68

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننتست ااوولین کنترلر

curl localhost:8080Greetings from UT-ACM Class!

69

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننباید کمی مقداارر ددهی ااوولیه رروو تغlر بدیم…

70

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننباید کمی مقداارر ددهی ااوولیه رروو تغlر بدیم…

71

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننباید کمی مقداارر ددهی ااوولیه رروو تغlر بدیم…

72

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننیک متد براایی اامکانن ااررززیابی ددااددهه‌هایی جدید

73

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننAPI وو متد‌هایی براایی غنی کرددنن

74

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن یک کالسس کوچک براایی جابجایی نتایج

75

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن یک کالسس کوچک براایی جابجایی نتایج

76

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننکالسس ااصلی

77

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننکالسس ااصلی

78

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناافزووددنن کنترلریی براایی ااررززیابی ددااددهه‌هایی جدید

79

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناافزووددنن کنترلریی براایی ااررززیابی ددااددهه‌هایی جدید

80

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناافزووددنن کنترلریی براایی ااررززیابی ددااددهه‌هایی جدید

81

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناافزووددنن کنترلریی براایی ااررززیابی ددااددهه‌هایی جدید

82

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناافزووددنن کنترلریی براایی ااررززیابی ددااددهه‌هایی جدید

83

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناافزووددنن کنترلریی براایی ااررززیابی ددااددهه‌هایی جدید

84

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناافزووددنن کنترلریی براایی ااررززیابی ددااددهه‌هایی جدید

85

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناافزووددنن کنترلریی براایی ااررززیابی ددااددهه‌هایی جدید

86

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناافزووددنن کنترلریی براایی ااررززیابی ددااددهه‌هایی جدید

87

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناافزووددنن کنترلریی براایی ااررززیابی ددااددهه‌هایی جدید

88

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننeval ااجراا وو آآززمایش کنترلر

89

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننeval ااجراا وو آآززمایش کنترلر

ااین سروویس ساددهه می‌توااند به تمامم بنگاهه‌هایی ااتوموبیل خدمت اارراائه نموددهه وو ددرر هنگامم باززیی کلش‌آآوورر‌کلنز ااررززشش آآفرینی کند.

90

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

یک پیاددهه ساززیی اازز االگورریتم لجستیک ررگرشن رراا براایی کشف تقلب کیلومتر ااتوموبیل آآمدهه کرددیم.

سپس آآنن رراا اازز یک ااپلیکیشن یکبارر ااجراا، به سروویسی کوچک که بدوونن ووبب‌سروورر به ووبب گوشش می‌ددهد

تبدیل کرددیم. براایی ااجراا تنها به JVM نیازز دداارردد.

ااین ااپلیکیشن هم ااکنونن قاددرر به اارراائه خدمت ااست، وولی بهبودد‌هایی بیشتریی نیازز دداارریم.

http://yourserver:8080/hello

http://yourserver:8080/eval

نگاهی به آآنچه تا ااینجا ساخته اایم

91

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

http://yourserver:8080/hello

http://yourserver:8080/eval

نگاهی به آآنچه تا ااینجا ساخته اایم

92

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم…

ااین کد به ددلم نمی نشینه…

93

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم…

94

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم…

پرددااززشش هایی سنگین تکراایی به ااززاایی کنترلر‌هایی بعدیی …

95

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم…

96

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم…

ساخت شی‌ ااصلی (حاوویی کد‌هایی یاددگیریی ماشین) رراا به سپرینگ سپرددیم. حاال ااین شی‌ میتوااند ددرر تمامم ااپلیکیشن بدوونن هزینه‌ ساخت مجددد مورردد ااستفاددهه قراارر گیردد…

97

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم…

LogisticRegression

OnlineLogisticRegression

EvaluateController

Spring Context

Managed Bean

98

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم…

LogisticRegression

OnlineLogisticRegression

EvaluateController

Spring Context

Managed Bean

پرددااززشش هایی سنگین تکراایی به ااززاایی کنترلر‌هایی بعدیی …

99

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم…

LogisticRegression

OnlineLogisticRegression

Spring Context

Managed Bean

at init

EvaluateControllerManaged Bean

100

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم…

LogisticRegression

OnlineLogisticRegression

EvaluateController

Spring Context

Inject

Managed BeanManaged Bean

at init

@Autowired

101

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم…

LogisticRegression

OnlineLogisticRegression

EvaluateController

Spring Context

FooController

InjectInject

Managed BeanManaged Bean

Managed Bean

at init

@Autowired

@Autowired

102

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم…

LogisticRegression

OnlineLogisticRegression

EvaluateController

Spring Context

FooController

InjectInject

Reuse…

Managed BeanManaged Bean

Managed Bean

at init

@Autowired

@Autowired

103

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم…

LogisticRegression

OnlineLogisticRegression

EvaluateController

Spring Context

SomethingController

InjectInject

Reuse…

Managed BeanManaged Bean

Managed Bean

at init

@Autowired

@Autowired

با ااستفاددهه مناسب اازز اامکاناتت کانتینر: کاهش محسوسس باررکارریی ددرر ماژژوولل‌هایی ااصلی همچونن یاددگیریی (اانوااعع یاددگیریی) •توسعه سریع وو کم‌هزینه •اافزاایش محسوسس کارراایی •کاهش نیازز به سخت‌اافزاارر وو منابع گراانن‌قیمت (سی‌پی‌یو) •کنترلل بهتر توسط کانتینر ••…

104

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننعکس بگیریم

105

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم… تست، تست، تست

106

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم… تست، تست، تست

107

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبه کیفیت فکر کنیم… تست، تست، تست

108

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننچطورر اازز حالل ااپلیکیشن با خبر بشیم؟

هنگامی که یک ااپپ رراا براایی کارربردد‌هایی صنعتی توسعه می‌ددهید باید: بتواانید اازز حالل ااپلیکیشن با خبر شوید •باید بتواانید سروویس‌ رراا خاموشش یا ررووشن کنید •باید بتواانید اازز ررااهه ددوورر ووضعیت حافظه سروویس رراا کنترلل کنید (دداامپ بگیرید) •باید بتواانید متریکس پارراامتر‌هایی ددرر حالل ااجراا رراا کنترلل کنید •باید به تمامم مقاددیر حیاتی ااپلیکیشن ددسترسی ددااشته باشید…•

109

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننچطورر اازز حالل ااپلیکیشن با خبر بشیم؟

110

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننچطورر اازز حالل ااپلیکیشن با خبر بشیم؟

curl yourserver:8080/healthcurl yourserver:8080/mappings

curl yourserver:8080/metrics

curl yourserver:8080/configprops

curl yourserver:8080/heapdump

curl yourserver:8080/dump

111

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااووضاعع به نظر خوبب میادد …

حاال می‌تونید برید با ددووستاتونن ددنبالل پوکمونن بگرددین وو سروویستونن برااتونن ااررززشش آآفرینی کنه.

112

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااووضاعع به نظر خوبب میادد …

حاال می‌تونید برید با ددووستاتونن ددنبالل پوکمونن بگرددین وو سروویستونن برااتونن ااررززشش آآفرینی کنه.

113

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااووضاعع به نظر خوبب میادد …

حاال می‌تونید برید با ددووستاتونن ددنبالل پوکمونن بگرددین وو سروویستونن برااتونن ااررززشش آآفرینی کنه.

114

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننمشکالتت ااضافه بارر کارریی…

لودد ززیادد مشکالتت جدیی برااتونن اایجادد می‌کنه…

115

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننمقیاسس‌پذیریی به کمک معمارریی رریزسروویس

116

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننمقیاسس‌پذیریی به کمک معمارریی رریزسروویس

117

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

yourServerIP:8080m1IP:8080 m1IP:8082 m2IP:8082 m2IP:8083 m2IP:8000

مقیاسس‌پذیریی به کمک معمارریی رریزسروویس

118

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

yourServerIP:8080

مقیاسس‌پذیریی به کمک معمارریی رریزسروویس

Load Balancerm1IP:8080 m1IP:8082 m2IP:8082 m2IP:8083 m2IP:8000

119

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

yourServerIP:8080

مقیاسس‌پذیریی به کمک معمارریی رریزسروویس

Load Balancerm1IP:8080 m1IP:8082 m2IP:8082 m2IP:8083 m2IP:8000

HDFS

120

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانننگاهی به آآنچه تا ااینجا ساخته اایم

121

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننخوددکاررساززیی عملیاتت طوالنی

یک ااپلیکیشن ددااددهه‌محورر که اازز تکنیک‌هایی یاددگیریی‌ماشین ااستفاددهه می‌کند، نیازز به اانجامم برخی عملیاتت به صوررتت ددسته‌اایی (Batch) دداارردد که:

• (Long Running) ااین عملیاتت معموال ززمانن ززیاددیی اازز سی‌پی‌یو رراا به خودد ااختصاصص می‌ددهندااین عملیاتت بسته به تعداادد ررکورردد‌ها یا ددرر باززهه‌هایی ززمانی معین رروویی می‌ددهند •ااین عملیاتت باید خوددکارر وو پیوسته اانجامم پذیرند •ااجراایی ااین عملیاتت نباید ددیگر کاررکردد‌ها رراا مختل کند•

122

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننخوددکاررساززیی عملیاتت طوالنی

123

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانننگاهی به آآنچه تا ااینجا ساخته اایم

124

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبخش ددوومم - تنسوررفلو

125

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبخش ددوومم - تنسوررفلو

126

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننبخش ددوومم - تنسوررفلو

127

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننتکثیر رریپوززیتورریی

Amirs-Mac-mini:dl amirmini$ git clone https://github.com/wolffg/tf-tutorial.git Cloning into 'tf-tutorial'... remote: Counting objects: 155, done. remote: Compressing objects: 100% (54/54), done. remote: Total 155 (delta 29), reused 0 (delta 0), pack-reused 100 Receiving objects: 100% (155/155), 56.46 MiB | 401.00 KiB/s, done. Resolving deltas: 100% (78/78), done. Checking connectivity... done.

128

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانننگاهی به محتویاتت

Amirs-Mac-mini:dl amirmini$ cd tf-tutorial/

Amirs-Mac-mini:tf-tutorial amirmini$ ls 0_tf_hello_world.ipynb extras 1_linear_regression_model.ipynb images 2_mnist.ipynb install-mac-docker.md DeepLearningSchool2016.pdf install-mac-native.md README.md install-ubuntu.md

129

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانننصب پایپ وو محیط مجاززیی پایتونن

Install Pip and Virtualenv

Amirs-Mac-mini:tf-tutorial amirmini$ sudo easy_install —upgrade pip Password: Searching for pip Reading https://pypi.python.org/simple/pip/ Best match: pip 8.1.2 Downloading https://pypi.python.org/packages/e7/ … … a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a Processing pip-8.1.2.tar.gz Processing dependencies for pip Finished processing dependencies for pip

130

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناادداامه نصب…

Amirs-Mac-mini:tf-tutorial amirmini$ sudo easy_install —upgrade six Searching for six Reading https://pypi.python.org/simple/six/ Best match: six 1.10.0 Downloading https://pypi.python.org/packages/b3/b2/238e2590826bfdd113244a40d9d3eb26918bd798fc187e2360a8367068db/six-1.10.0.tar.gz#md5=34eed507548117b2ab523ab14b2f8b55 Processing six-1.10.0.tar.gz Writing /tmp/easy_install-aPWTOF/six-1.10.0/setup.cfg Running six-1.10.0/setup.py -q bdist_egg —dist-dir /tmp/easy_install-aPWTOF/six-1.10.0/egg-dist-tmp-kIrpiG no previously-included directories found matching 'documentation/_build' six: module references __path__ Adding six 1.10.0 to easy-install.pth file Installed /Library/Python/2.7/site-packages/six-1.10.0-py2.7.egg Processing dependencies for six Finished processing dependencies for six

131

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناادداامه نصب…

Amirs-Mac-mini:tf-tutorial amirmini$ sudo pip install —upgrade virtualenv The directory '/Users/amirmini/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/Users/amirmini/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting virtualenv Downloading virtualenv-15.0.3-py2.py3-none-any.whl (3.5MB) 100% |████████████████████████████████| 3.5MB 185kB/s Installing collected packages: virtualenv Successfully installed virtualenv-15.0.3

132

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننکنترلل نسخه پایتونن رروویی سیستم

Amirs-Mac-mini:tf-tutorial amirmini$ virtualenv —system-site-packages ~/tensorflow New python executable in /Users/amirmini/tensorflow/bin/python.Installing setuptools, pip, wheel...done

Amirs-Mac-mini:tf-tutorial amirmini$ python —version Python 2.7.10

133

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانندداانلودد آآناکونداا متناظر با سیستم عامل

Download the proper Anaconda (Anaconda2-4.1.1-MacOSX-x86_64.sh) for OS / Python 2.7.10 from: https://www.continuum.io/downloads

Amirs-Mac-mini:tf-tutorial amirmini$ cp ~/Downloads/Anaconda2-4.1.1-MacOSX-x86_64.sh .

Amirs-Mac-mini:tf-tutorial amirmini$ ls 0_tf_hello_world.ipynb extras 1_linear_regression_model.ipynb images 2_mnist.ipynb install-mac-docker.md Anaconda2-4.1.1-MacOSX-x86_64.sh install-mac-native.md DeepLearningSchool2016.pdf install-ubuntu.md README.md

134

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانننصب آآناکونداا

Amirs-Mac-mini:tf-tutorial amirmini$ bash Anaconda2-4.1.1-MacOSX-x86_64.sh

Welcome to Anaconda2 4.1.1 (by Continuum Analytics, Inc.)

In order to continue the installation process, please review the license agreement. Please, press ENTER to continue »> … … For this change to become active, you have to open a new terminal. Thank you for installing Anaconda2!

Share your notebooks and packages on Anaconda Cloud! Sign up for free: https://anaconda.org

135

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننفعالل ساززیی

Amirs-Mac-mini:tf-tutorial amirmini$ source ~/tensorflow/bin/activate (tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$

(tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ pip install —upgrade protobuf Collecting protobuf Downloading protobuf-3.0.0-py2.py3-none-any.whl (342kB) 100% |████████████████████████████████| 348kB 445kB/s Requirement already up-to-date: six>=1.9 in /Library/Python/2.7/site-packages/six-1.10.0-py2.7.egg (from protobuf) Requirement already up-to-date: setuptools in /Users/amirmini/tensorflow/lib/python2.7/site-packages (from protobuf) Installing collected packages: protobuf Successfully installed protobuf-3.0.0

136

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننتعریف مسیر منبع براایی نصب تنسوررفلو

(tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl (tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$

(tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ pip install —upgrade $TF_BINARY_URL Collecting tensorflow==0.10.0 from https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl HTTP error 403 while getting https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl Could not install requirement tensorflow==0.10.0 from https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl because of error 403 Client Error: Forbidden for url: https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl Could not install requirement tensorflow==0.10.0 from https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl because of HTTP error 403 Client Error: Forbidden for url: https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl for URL https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl

137

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننتعریف مسیر منبع براایی نصب تنسوررفلو

amirmini$ ALL_PROXY=socks5://127.0.0.1:9696 pip install —upgrade $TF_BINARY_URL Collecting tensorflow==0.10.0 from https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl HTTP error 403 while getting https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl Could not install requirement tensorflow==0.10.0 from https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl because of error 403 Client Error: Forbidden for url: https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl Could not install requirement tensorflow==0.10.0 from https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl because of HTTP error 403 Client Error: Forbidden for url: https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl for URL https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl

138

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانندداانلودد منبع براایی نصب تنسوررفلو

(tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ TF_BINARY_URL=file:///Users/amirmini/Downloads/tensorflow-0.10.0-py2-ne-any.whl (tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ pip install —upgrade $TF_BINARY_URL tensorflow-0.10.0-py2-ne-any.whl is not a supported wheel on this platform.

https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl

Downloaded though proxy

Needed to have a look into Python Packages!!!

139

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننمشاهدهه محتویاتت پکیج‌هایی نصب شدهه

(tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ python Python 2.7.10 (default, Jul 14 2015, 19:46:27) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information. »> import pip »> print(pip.pep425tags.get_supported()) [('cp27', 'cp27m', 'macosx_10_10_x86_64'), ('cp27', 'cp27m', 'macosx_10_10_intel'), ('cp27', 'cp27m', 'macosx_10_10_fat64'), ('cp27', 'cp27m', 'macosx_10_10_fat32'), ('cp27', 'cp27m', 'macosx_10_10_universal'), ('cp27', 'cp27m', 'macosx_10_9_x86_64'), ('cp27', 'cp27m', 'macosx_10_9_intel'), ('cp27', 'cp27m', 'macosx_10_9_fat64'), ('cp27', 'cp27m', 'macosx_10_9_fat32'), ('cp27', 'cp27m', 'macosx_10_9_universal'), ('cp27', 'cp27m', 'macosx_10_8_x86_64'), ('cp27', 'cp27m', 'macosx_10_8_intel'), ('cp27', 'cp27m', 'macosx_10_8_fat64'), ('cp27', 'cp27m', 'macosx_10_8_fat32'), ('cp27', 'cp27m', 'macosx_10_8_universal'), ('cp27', 'cp27m', 'macosx_10_7_x86_64'), ('cp27', 'cp27m', 'macosx_10_7_intel'), ('cp27', 'cp27m', 'macosx_10_7_fat64'), ('cp27', 'cp27m', 'macosx_10_7_fat32'), ('cp27', 'cp27m', 'macosx_10_7_universal'), ('cp27', 'cp27m', 'macosx_10_6_x86_64'), ('cp27', 'cp27m', 'macosx_10_6_intel'), ('cp27', 'cp27m', 'macosx_10_6_fat64'), ('cp27', 'cp27m', 'macosx_10_6_fat32'), ('cp27', 'cp27m', 'macosx_10_6_universal'), ('cp27', 'cp27m', 'macosx_10_5_x86_64'), ('cp27', ‘cp27m', …

140

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننتغlر نامم :ددیی

(tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ mv tensorflow-0.10.0-py2-none-any.whl tensorflow-0.10.0-py27-none-any.whl

(tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ TF_BINARY_URL=file:///Users/amirmini/Projects/dl/tf-tutorial/tensorflow-0.10.0-py27-none-any.whl

141

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانناادداامه نصب …

(tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ pip install —upgrade $TF_BINARY_URL Processing ./tensorflow-0.10.0-py27-none-any.whl Collecting mock>=2.0.0 (from tensorflow==0.10.0) Downloading mock-2.0.0-py2.py3-none-any.whl (56kB) 100% |████████████████████████████████| 61kB 170kB/s Requirement already up-to-date: wheel in /Users/amirmini/tensorflow/lib/python2.7/site-packages (from tensorflow==0.10.0) Collecting numpy>=1.10.1 (from tensorflow==0.10.0) Downloading numpy-1.11.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (3.9MB) … 100% |████████████████████████████████| 3.9MB 188kB/s Uninstalling protobuf-3.0.0: Successfully uninstalled protobuf-3.0.0 Successfully installed funcsigs-1.0.2 mock-2.0.0 numpy-1.11.1 pbr-1.10.0 protobuf-3.0.0b2 tensorflow-0.10.0

142

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانننصب ژژووپیتر

(tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ pip install —upgrade jupyter Collecting jupyter Downloading jupyter-1.0.0-py2.py3-none-any.whl Collecting notebook (from jupyter) Downloading notebook-4.2.3-py2.py3-none-any.whl (6.7MB) 100% |████████████████████████████████| 6.7MB 132kB/s Collecting nbconvert (from jupyter) Downloading nbconvert-4.2.0-py2.py3-none-any.whl (319kB) 100% |████████████████████████████████| 327kB 610kB/s

Successfully installed MarkupSafe-0.23 appnope-0.1.0 backports-abc-0.4 backports.shutil-get-terminal-size-1.0.0 certifi-2016.9.26 configparser-3.5.0 decorator-4.0.10 entrypoints-0.2.2 enum34-1.1.6 functools32-3.2.3.post2 ipykernel-4.5.0 ipython-5.1.0 ipython-genutils-0.1.0 ipywidgets-5.2.2 jinja2-2.8 jsonschema-2.5.1 jupyter-1.0.0 jupyter-client-4.4.0 jupyter-console-5.0.0 jupyter-core-4.2.0 mistune-0.7.3 nbconvert-4.2.0 nbformat-4.1.0 notebook-4.2.3 pathlib2-2.1.0 pexpect-4.2.1 pickleshare-0.7.4 prompt-toolkit-1.0.7 ptyprocess-0.5.1 pygments-2.1.3 pyzmq-15.4.0 qtconsole-4.2.1 simplegeneric-0.8.1 singledispatch-3.4.0.3 terminado-0.6 tornado-4.4.1 traitlets-4.3.0 wcwidth-0.1.7 widgetsnbextension-1.2.6

143

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانننصب پیلو

(tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ pip install —upgrade Pillow Collecting Pillow Downloading Pillow-3.3.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (3.1MB) 100% |████████████████████████████████| 3.1MB 217kB/s Installing collected packages: Pillow Successfully installed Pillow-3.3.1

144

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااجراایی خوددآآموزز

(tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ jupyter notebook [I 16:44:11.200 NotebookApp] Writing notebook server cookie secret to /Users/amirmini/Library/Jupyter/runtime/notebook_cookie_secret [I 16:44:11.279 NotebookApp] Serving notebooks from local directory: /Users/amirmini/Projects/dl/tf-tutorial [I 16:44:11.279 NotebookApp] 0 active kernels [I 16:44:11.279 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/ [I 16:44:11.279 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [I 16:44:21.100 NotebookApp] Writing notebook-signing key to /Users/amirmini/Library/Jupyter/notebook_secret [W 16:44:21.102 NotebookApp] Notebook 0_tf_hello_world.ipynb is not trusted [I 16:44:21.458 NotebookApp] Kernel started: a6ab16f2-a9a5-4e53-a8fa-b730261aff7f [W 16:44:21.534 NotebookApp] 404 GET /nbextensions/widgets/notebook/js/extension.js?v=20160926164411 (::1) 44.65ms referer=http://localhost:8888/notebooks/0_tf_hello_world.ipynb [I 16:46:21.285 NotebookApp] Saving file at /0_tf_hello_world.ipynb [I 17:07:09.532 NotebookApp] Saving file at /0_tf_hello_world.ipynb

145

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااجراایی مجددد پس اازز نصب

Amirs-Mac-mini:dl amirmini$ cd tf-tutorial/ Amirs-Mac-mini:tf-tutorial amirmini$ source ~/tensorflow/bin/activate (tensorflow) Amirs-Mac-mini:tf-tutorial amirmini$ jupyter notebook [I 23:31:44.745 NotebookApp] Serving notebooks from local directory: /Users/amirmini/Projects/dl/tf-tutorial [I 23:31:44.745 NotebookApp] 0 active kernels [I 23:31:44.745 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/ [I 23:31:44.745 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [I 23:31:58.425 NotebookApp] Kernel started: 35410d58-230c-41bc-a66d-f23492c100b2 [W 23:31:58.544 NotebookApp] 404 GET /nbextensions/widgets/notebook/js/extension.js?v=20161005233142 (::1) 100.05ms referer=http://localhost:8888/notebooks/1_linear_regression_model.ipynb

146

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااجراایی خوددآآموزز

147

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااجراایی خوددآآموزز

148

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااجراایی خوددآآموزز

149

گذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهرااننااجراایی خوددآآموزز

150

مرجعگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

https://spring.io/guides/gs/spring-boot/

https://github.com/sherrym/tf-tutorial/blob/master/install-mac-native.md

https://github.com/sherrym/tf-tutorial

151

پایاننگذرریی بر کارربردد‌هایی ددااددهه‌هایی بزررگگ وو یاددگیریی‌ماشین - تابستانن ACM - ۱۳۹۵ دداانشگاهه تهراانن

اازز آآشنایی با شما عزیزاانن خرسندمم.