SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
‫د‬ ‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬ ‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬‫اده‬(4)
‫تهران‬ ،‫شریف‬ ‫صنعتی‬ ‫دانشگاه‬
‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬1
Akhavan@alirezaweb.com ‫اخوان‬ ‫علیرضا‬‫پور‬
6‫بهمن‬1395
‫علیرضا‬‫اخوان‬‫پور‬
www.Bigdataworkgroup.ir
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬2
‫ِي‬‫ر‬ْ‫د‬َ‫ص‬ ‫ِي‬‫ل‬ ْ‫ح‬َ‫ر‬ْ‫ش‬‫ا‬ ِّ‫ب‬َ‫ر‬ َ‫ل‬‫َا‬‫ق‬﴿۲۵﴾‫ِي‬‫ر‬ْ‫م‬َ‫أ‬ ‫ِي‬‫ل‬ ْ‫ر‬ِّ‫س‬َ‫ي‬َ‫و‬﴿۲۶﴾
‫ِي‬‫ن‬‫َا‬‫س‬ِّ‫ل‬ ‫ِّن‬‫م‬ ً‫ة‬َ‫د‬ْ‫ق‬ُ‫ع‬ ْ‫ل‬ُ‫ل‬ْ‫ح‬‫َا‬‫و‬﴿۲۷﴾‫ِي‬‫ل‬ْ‫و‬َ‫ق‬ ‫ُوا‬‫ه‬َ‫ق‬ْ‫ف‬َ‫ي‬﴿۲۸﴾
(‫طه‬ ‫سوره‬)
 Torch
 Caffe
 Theano (Keras, Lasagne)
 CuDNN
 Tensorflow
 Mxnet
 ...
‫علیرضا‬‫اخوان‬‫پور‬
‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬
‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬
3
‫های‬‫چارچوب‬
‫ژرف‬ ‫یادگیری‬
‫در‬ ‫آمار‬Github
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬4
Name release Star Fork
Tensorflow Nov 1, 2015 44k 20k
caffe Sep 8, 2013 15k 10k
keras Mar 22, 2015 11k 4k
mxnet Apr 26, 2015 8k 3k
torch Jan 22, 2012 6k 2k
theano Jan 6, 2008 5k 2k
Last update: 2017 22 January
‫گوگل‬ ‫در‬ ‫جو‬ ‫و‬ ‫جست‬ ‫آمار‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬5
https://www.google.com/trends/explore?date=today 12-m&q=tensorflow tutorial,torch tutorial,theano tutorial,caffe tutorial,Mxnet tutorial
‫چارچوب؟‬ ‫انتخاب‬ ‫معیارهای‬!
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬6
•‫پیکربندی‬ ‫فایل‬‫نویسی؟‬‫برنامه‬ ‫یا‬!
• Configuration file: Caffe, DistBelief and CNTK
• programmatic generation: Torch, Theano and Tensorflow
•‫نویسی‬‫برنامه‬ ‫زبان‬ ‫انتخاب‬
• Lua (Torch) vs. Python (Theano, Tensorflow) vs others
‫مقایسه‬Theano‫و‬Tensorflow
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬7
‫پذیری‬ ‫توزیع‬
‫سرعت‬
‫کاربرد‬
‫عملی‬
‫آکادمیک‬
https://github.com/soumith/convnet-benchmarks (Soumith Chintala , Facebook AI Research)
2015

2016

‫کنند؟‬‫می‬ ‫استفاده‬ ‫تنسورفلو‬ ‫از‬ ‫کسانی‬ ‫چه‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬8
‫علیرضا‬‫اخوان‬‫پور‬
‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬
‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬
9
‫تنسورفل‬ ‫مبانی‬‫و‬
‫گوگل‬ ‫ژرف‬ ‫یادگیری‬ ‫ورک‬‫فریم‬‫شد‬ ‫منتشر‬ ‫باز‬‫متن‬ ‫صورت‬ ‫به‬ ‫اخیرا‬ ‫که‬‫است‬ ‫ه‬.
‫گیری‬‫مشتق‬ ‫و‬ ‫بهینه‬ ‫محاسباتی‬ ‫عملیات‬
‫گراف‬ ‫گرادیان‬ ‫ی‬‫محاسبه‬
‫چیست؟‬ ‫تنسور‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬10
،‫ساده‬ ‫عبارت‬ ‫به‬‫ی‬‫آرایه‬n‫اعداد‬ ‫از‬ ‫بعدی‬
‫داده‬ ‫جریان‬ ‫گراف‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬11
‫تنسورفلو‬‫تعریف‬‫محاسبات‬‫از‬‫اجرا‬‫اس‬ ‫کرده‬ ‫جدا‬ ‫را‬‫ت‬.
‫گام‬1:‫محاسباتی‬ ‫گراف‬ ‫تعریف‬
‫گام‬2:‫یک‬ ‫از‬ ‫استفاده‬‫برای‬ ‫نشست‬‫در‬ ‫عملیات‬ ‫اجرای‬‫گراف‬ ‫این‬.
‫داده‬ ‫جریان‬ ‫گراف‬
import tensorflow as tf
a = tf.add(2, 3)
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬12
‫چرا‬x‫و‬y‫؟‬!
‫نسبت‬ ‫نام‬ ‫ها‬‫آن‬ ‫به‬ ‫خودکار‬ ‫صورت‬ ‫به‬ ‫تنسورفلو‬ ،‫نکنید‬ ‫گذاری‬‫نام‬ ‫را‬ ‫محاسباتی‬ ‫گراف‬ ‫رئوس‬ ‫صریح‬ ‫صورت‬ ‫به‬ ‫اگر‬‫دهد‬‫می‬.
‫مثال‬ ‫این‬ ‫در‬
x = 2
y = 3
‫از‬ ‫استفاده‬ ‫ی‬‫ساده‬ ‫ی‬‫برنامه‬numpy
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬13
‫تنسورفلو‬ ‫با‬ ‫بازنویسی‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬14
In [2]: import tensorflow as tf
In [3]: tf.InteractiveSession()
In [4]: a = tf.zeros((2,2)); b = tf.ones((2,2))
In [5]: tf.reduce_sum(b, reduction_indices=1).eval()
Out[5]: array([ 2., 2.], dtype=float32)
In [6]: a.get_shape()
Out[6]: TensorShape([Dimension(2), Dimension(2)])
In [7]: tf.reshape(a, (1, 4)).eval()
Out[7]: array([[ 0., 0., 0., 0.]], dtype=float32)
session‫؟‬!
‫؟‬! eval
TensorShape‫مثل‬
tuple‫و‬ ‫اد‬‫ا‬‫ی‬ ‫ر‬ ‫اد‬‫ا‬‫ه‬
‫میکنند‬ ‫در‬ ‫رف‬
‫از‬ ‫استفاده‬ ‫ی‬‫مقایسه‬numpy‫و‬Tensorflow
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬15
Numpy TensorFlow
a= np.zeros((2,2)); b = np.ones((2,2)) a= tf.zeros((2,2)), b = tf.ones((2,2))
np.sum(b, axis=1) tf.reduce_sum(a,reduction_indices=[1])
a.shape a.get_shape()
np.reshape(a, (1,4)) tf.reshape(a, (1,4))
b * 5 + 1 b * 5 + 1
np.dot(a,b) tf.matmul(a, b)
a[0,0], a[:,0], a[0,:] a[0,0], a[:,0], a[0,:]
‫صریح‬ ‫ارزیابی‬ ‫به‬ ‫تنسورفلو‬‫نیاز‬‫دارد‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬16
In [5]: a = np.zeros((2,2))
In [6]: ta = tf.zeros((2,2))
‫تنسورفلو‬‫یک‬‫گراف‬‫محدسبدتی‬
‫تعریف‬‫‌کند‬‫ی‬‫م‬‫که‬‫تا‬‫زمانی‬‫که‬‫ارزی‬‫ابی‬
‫نشود‬‫هیچ‬‫مقدار‬‫عددی‬‫ندارد‬!
In [7]: print(a)
[[ 0. 0.]
[ 0. 0.]]
In [8]: print(ta)
Tensor("zeros_1:0", shape=(2, 2), dtype=float32)
In [9]: print(ta.eval())
[[ 0. 0.]
[ 0. 0.]]
‫نشست‬ ‫شئ‬(session)‫در‬‫تنسورفلو‬(1)
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬17
”‫شیء‬ ‫یک‬session‫محیطی‬‫کند‬‫می‬ ‫سازی‬‫کپسوله‬ ‫را‬ ‫شوند‬ ‫می‬ ‫ارزیابی‬ ‫تنسور‬ ‫اشیاء‬ ‫آن‬ ‫در‬ ‫که‬!“Tensorflow_Docs
In [1]: a = tf.constant(5.0)
In [2]: b = tf.constant(6.0)
In [3]: c = a * b
In [4]: with tf.Session() as sess:
....: print(sess.run(c))
....: print(c.eval())
....:
30.0
30.0
c.eval()‌‫معادل‬sess.run(c)‌‫در‬
‌‫‌ی‬‫ه‬‫محدود‬session‫فعال‬!
‫نشست‬ ‫شئ‬(session)‫تنسورفلو‬ ‫در‬(2)
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬18
‫یک‬Session‫ممکن‬‫است‬‫منابعی‬‫در‬‫اختیار‬‫گرفته‬‫باشد‬‫و‬‫حتما‬‫باید‬‫بعد‬‫از‬‫استفاده‬‫‌ها‬‫ن‬‫آ‬‫را‬‫آزادک‬‫نیم‬.
‫گراف‬ ‫از‬ ‫بیشتر‬ ‫هایی‬ ‫مثال‬(1)
x = tf.constant(2)
y = 3
op1 = tf.add(x, y)
op2 = tf.mul(x, y)
op3 = tf.pow(op2, op1)
with tf.Session() as sess:
op3 = sess.run(op3)
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬19
‫از‬ ‫بیشتر‬ ‫هایی‬ ‫مثال‬‫گراف‬(2)
x = 2
y = 3
op1 = tf.add(x, y)
op2 = tf.mul(x, y)
useless = tf.mul(x, op1)
op3 = tf.pow(op2, op1)
with tf.Session() as sess:
op3 = sess.run(op3)
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬20
‫با‬‫اجرای‬op3‫نیازی‬‫به‬useless‫نمیشود‬.
‫پس‬‫نشست‬‫آن‬‫را‬‫اجرا‬‫‌کند‬‫ی‬‫نم‬.
‫‌جویی‬‫ه‬‫صرف‬‫در‬‫محاسبات‬
‫از‬ ‫بیشتر‬ ‫هایی‬ ‫مثال‬‫گراف‬(3)
x = 2
y = 3
op1 = tf.add(x, y)
op2 = tf.mul(x, y)
useless = tf.mul(x, op1)
op3 = tf.pow(op2, op1)
with tf.Session() as sess:
op3, not_useless = sess.run([op3, useless])
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬21
‫در‬‫این‬‫حالت‬useless‫نیز‬‫محاسبه‬‫‌شود‬‫ی‬‫م‬.
Variable‫تنسورفلو‬ ‫در‬ ‫ها‬(1)
‫هنگامی‬‫داریم‬ ‫متغیر‬ ‫تعریف‬ ‫به‬ ‫نیاز‬ ‫ها‬‫پارامتر‬ ‫داری‬‫نگه‬ ‫برای‬ ،‫دهیم‬‫می‬ ‫آموزش‬ ‫را‬ ‫مدل‬ ‫یک‬ ‫که‬.
variable‫باشد‬ ‫متغیر‬ ‫رسانی‬ ‫روز‬ ‫به‬ ‫به‬ ‫نیاز‬ ‫که‬ ‫روند‬‫می‬ ‫کار‬ ‫به‬ ‫مواردی‬ ‫در‬ ‫ها‬.TensorFlow_Docs
‫شبکه‬ ‫های‬‫وزن‬ ‫مانند‬
‫نوع‬ ‫از‬ ‫شد‬ ‫مالحظه‬ ‫پیشین‬ ‫اسالیدهای‬ ‫در‬ ‫که‬ ‫تنسورهای‬ ‫تمام‬constant‫بودند‬!
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬22
Variable‫تنسورفلو‬ ‫در‬ ‫ها‬(2)
In [32]: W1 = tf.ones((2,2))
In [33]: W2 = tf.Variable(tf.zeros((2,2)), name="weights")
In [34]: with tf.Session() as sess:
print(sess.run(W1))
sess.run(tf.initialize_all_variables())
print(sess.run(W2))
....:
[[ 1. 1.]
[ 1. 1.]]
[[ 0. 0.]
[ 0. 0.]]
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬23
‌‫فراخوانی‬tf.initialize_all_variables()‌‫برای‬‫مقدار‌دهی‌اولیه‬
‫تدبع‬tf.initialize_all_variables()‫شو‬‫می‬ ‫حذف‬ ‫ی‬ ‫زو‬ ‫به‬.
‫ن‬ ‫گز‬ ‫جد‬:tf.global_variables_initializer
Variable‫تنسورفلو‬ ‫در‬ ‫ها‬(3)
•Variable‫شوند‬ ‫اولیه‬ ‫مقداردهی‬ ‫باید‬ ‫حتما‬ ‫تنسورفلو‬ ‫در‬ ‫ها‬(initialize)
•‫با‬ ‫مقایسه‬constant‫؟‬!
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬24
In [38]: W = tf.Variable(tf.zeros((2,2)), name="weights")
In [39]: R = tf.Variable(tf.random_normal((2,2)), name="random_weights")
In [40]: with tf.Session() as sess:
....: sess.run(tf.global_variables_initializer())
....: print(sess.run(W))
....: print(sess.run(R))
....:
‫اشیاء‬variable‫را‬‫می‬‫توان‬‌‫با‬‫ثابت‬‌‫‌ها‬(constant‌)‫یا‬‫مقادیر‬‫تصادفی‬‫مقداردهی‬‫اولیه‬‫کرد‬
‌‫مقدار‌دهی‌اولیه‌تمام‬‌‫متغیرها‬‌‫با‬‫مقادیر‌قبال‌مشخص‌شده‬.
‫یک‬ ‫رسانی‬ ‫روز‬ ‫به‬variable
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬25
In [63]: state = tf.Variable(0, name="counter")
In [64]: new_value = tf.add(state, tf.constant(1))
In [65]: update = tf.assign(state, new_value)
In [66]: with tf.Session() as sess:
....: sess.run(tf.global_variables_initializer())
....: print(sess.run(state))
....: for _ in range(3):
....: sess.run(update)
....: print(sess.run(state))
....:
‫ل‬ ‫معد‬new_value = state + 1
‫ل‬ ‫معد‬state = new_value
‫ل‬ ‫معد‬
state = 0
print(state)
for _ in range(3):
state = state + 1
print(state)
‫خروجی‬‫قطعه‌کد‬:
0
1
2
3
‫واکشی‬Variable‫تنسورفلو‬ ‫در‬ ‫ها‬(1)
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬26
In [82]: input1 = tf.constant(3.0)
In [83]: input2 = tf.constant(2.0)
In [84]: input3 = tf.constant(5.0)
In [85]: intermed = tf.add(input2, input3)
In [86]: mul = tf.mul(input1, intermed)
In [87]: with tf.Session() as sess:
....: result = sess.run([mul, intermed])
....: print(result)
....:
‫خروجی‬:
[21.0, 7.0]
‫فراخوانی‬sess.run(var)‫در‬‫یک‬‫نشست‬،‫مقدار‬‫آن‬‫متغیر‬‫را‬‫‌دهد‬‫ی‬‫م‬.
‫‌توان‬‫ی‬‫م‬‫چندین‬‫متغیر‬‫را‬‫همزمان‬‫واکشی‬(fetch)‫کرد‬.
‫واکشی‬Variable‫تنسورفلو‬ ‫در‬ ‫ها‬(2)
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬27
input1 = tf.constant(3.0)
input2 = tf.constant(2.0)
input3 = tf.constant(5.0)
intermed = tf.add(input2, input3)
mul = tf.mul(input1, intermed)
with tf.Session() as sess:
result = sess.run([mul, intermed])
print(result)
‫ورودی‬
‫بودند‬ ‫شده‬ ‫تعریف‬ ‫دستی‬ ‫صورت‬ ‫به‬ ‫تنسورها‬ ‫پیشین‬ ‫اسالیدهای‬ ‫تمام‬ ‫در‬.
‫بدهیم؟‬ ‫ورودی‬ ‫آن‬ ‫به‬ ‫تنسورفلو‬ ‫از‬ ‫بیرون‬ ‫از‬ ‫چگونه‬!
oConstant
oVariable
o‫؟‬!
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬28
‫ساده‬ ‫حل‬ ‫راه‬:‫از‬ ‫استفاده‬numpy
‫از‬ ‫استفاده‬ ‫با‬ ‫ورودی‬numpy
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬29
In [93]: a = np.zeros((3,3))
In [94]: ta = tf.convert_to_tensor(a)
In [95]: with tf.Session() as sess:
....: print(sess.run(ta))
....:
[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
‫با‬ ‫ورودی‬Placeholder‫و‬Feed Dictionary
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬30
In [96]: input1 = tf.placeholder(tf.float32)
In [97]: input2 = tf.placeholder(tf.float32)
In [98]: output = tf.mul(input1, input2)
In [99]: with tf.Session() as sess:
....: print(sess.run([output], feed_dict={input1:[7.], input2:[2.]}))
....:
[array([ 14.], dtype=float32)]
‌‫تعریف‌اشیاء‬tf.placeholder‫برای‌ورود‌داده‌ها‬
Feed data into
computation graph.
Fetch value of output
from computation graph.
‫از‬ ‫استفاده‬ ‫با‬ ‫ورودی‬numpy‫نیست‬ ‫پذیر‬‫مقیاس‬ ‫اما‬ ،‫است‬ ‫راحت‬ ‫و‬ ‫پذیر‬ ‫امکان‬.
‫از‬ ‫استفاده‬tf.placeholder‫و‬feed_dict
‫مثال‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬31
‫با‬ ‫ورودی‬Placeholder‫و‬Feed Dictionary(3)
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬32
In [96]: input1 = tf.placeholder(tf.float32)
In [97]: input2 = tf.placeholder(tf.float32)
In [98]: output = tf.mul(input1, input2)
In [99]: with tf.Session() as sess:
....: print(sess.run([output], feed_dict={input1:[7.], input2:[2.]}))
....:
[array([ 14.], dtype=float32)]
‫علیرضا‬‫اخوان‬‫پور‬
‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬
‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬
34
‫عملی‬ ‫مثال‬
‫مرور‬...
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬35
‫ساده‬ ‫مثال‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬36
Softmax
𝑌 = 𝑆𝑜𝑓𝑡𝑚𝑎𝑥 ( 𝑋. 𝑊 + 𝑏 )
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬37
‫بینی‬‫ییش‬
𝒀[𝟏𝟎𝟎, 𝟏𝟎]
‫ر‬ ‫تصدو‬
𝑿[𝟏𝟎𝟎, 𝟕𝟒𝟖]
‫هد‬ ‫وز‬
𝑾[𝟕𝟒𝟖, 𝟏𝟎]
‫دس‬ ‫بد‬
b[𝟏𝟎]
‫سی‬ ‫مدتر‬ ‫ضرب‬
Softmax‫تنسورفلو‬ ‫در‬
𝑌 = 𝑡𝑓. 𝑛𝑛. 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑡𝑓. 𝑚𝑎𝑡𝑚𝑢𝑙(𝑋, 𝑊) + 𝑏)
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬38
𝑿[𝟏𝟎𝟎, 𝟕𝟒𝟖] 𝑾[𝟕𝟒𝟖, 𝟏𝟎] b[𝟏𝟎]
‫سی‬ ‫مدتر‬ ‫ضرب‬
Tensor shapes:
− 𝑌𝑖
′
. log(𝑌𝑖)
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬39
Cross entropy: actual probabilities, “one-hot” encoded
computed probabilities

‫اولیه‬ ‫مقداردهی‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬40
import tensorflow as tf
X = tf.placeholder(tf.float32, [None, 28, 28, 1])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
init = tf.initialize_all_variables()
‫معیار‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬41
# model
Y = tf.nn.softmax(tf.matmul(tf.reshape(X, [-1, 784]), W) + b)
# placeholder for correct answers
Y_ = tf.placeholder(tf.float32, [None, 10])
# loss function
cross_entropy = -tf.reduce_sum(Y_ * tf.log(Y))
# % of correct answers found in batch
is_correct = tf.equal(tf.argmax(Y,1), tf.argmax(Y_,1))
accuracy = tf.reduce_mean(tf.cast(is_correct, tf.float32))
‫آموزش‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬42
optimizer = tf.train.GradientDescentOptimizer(0.003)
train_step = optimizer.minimize(cross_entropy)
‫اجرا‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬43
sess = tf.Session()
sess.run(init)
for i in range(1000):
# load batch of images and correct answers
batch_X, batch_Y = mnist.train.next_batch(100)
train_data={X: batch_X, Y_: batch_Y}
# train
sess.run(train_step, feed_dict=train_data)
# success ?
a,c = sess.run([accuracy, cross_entropy], feed_dict=train_data)
# success on test data ?
test_data={X: mnist.test.images, Y_: mnist.test.labels}
a,c = sess.run([accuracy, cross_entropy, It], feed=test_data)
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬44
‫شده‬ ‫توزیع‬ ‫محاسبات‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬45
•‫روی‬ ‫موازی‬ ‫اجرای‬ ‫برای‬ ‫را‬ ‫محاسباتی‬ ‫گراف‬ ‫توان‬‫می‬cpu
،‫ها‬GPU‫تقس‬ ‫قسمت‬ ‫چند‬ ‫به‬ ‫مختلف‬ ‫های‬‫دستگاه‬ ‫و‬ ‫ها‬‫یم‬
‫کرد‬.
with tf.device('/gpu:2'):
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], name='b')
c = tf.matmul(a, b)
‫علیرضا‬‫اخوان‬‫پور‬
‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬
‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬
46
‫منابع‬
‫بیشت‬ ‫مطالعات‬ ‫و‬‫ر‬
‫تنسورفلو‬ ‫آموزش‬ ‫رایگان‬ ‫و‬ ‫آنالین‬ ‫های‬‫درس‬
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬47
https://www.udacity.com/course/deep-learning--ud730
Deep Learning by (using Tensorflow (
Deep Learning with TensorFlow
https://bigdatauniversity.com/courses/deep-learning-tensorflow/
CS 20SI: Tensorflow for Deep Learning Research
https://web.stanford.edu/class/cs20si/
https://www.youtube.com/watch?v=l6K-MFgIEjc
https://cs224d.stanford.edu/lectures/CS224d-Lecture7.pdf
19th Apr 2016
‫منابع‬‫مطالعه‬ ‫برای‬ ‫مفید‬ ‫و‬ ‫ارائه‬ ‫این‬ ‫اصلی‬...
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬48
https://www.youtube.com/watch?v=vq2nnJ4g6N0
https://gotocon.com/...TensorflowAndDeepLearningWithoutAPhD.pdf
8 Nov 2016
http://web.stanford.edu/class/cs20si/lectures/slides_01.pdf
13 and 18 Jan 2017
http://web.stanford.edu/class/cs20si/lectures/slides_02.pdf
‫منابع‬ ‫سایر‬
TensorFlow official site
http://tensorflow.org/
Deep Learning Frameworks Compared by Siraj Raval
https://www.youtube.com/watch?v=MDP9FfsNx60
TensorFlow - Ep. 22 (Deep Learning SIMPLIFIED)
https://www.youtube.com/watch?v=bYeBL92v99Y
‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬49
‫د‬ ‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬ ‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬‫اده‬(4)
‫تهران‬ ،‫شریف‬ ‫صنعتی‬ ‫دانشگاه‬ ‫داده؛‬ ‫کالن‬ ‫کارگروه‬
‫تشکر‬ ‫با‬
‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬50
Akhavan@alirezaweb.com ‫پور‬ ‫اخوان‬ ‫علیرضا‬
6‫بهمن‬1395
‫علیرضا‬‫اخوان‬‫پور‬

Más contenido relacionado

La actualidad más candente

Build Data Lakes & Analytics on AWS: Patterns & Best Practices
Build Data Lakes & Analytics on AWS: Patterns & Best PracticesBuild Data Lakes & Analytics on AWS: Patterns & Best Practices
Build Data Lakes & Analytics on AWS: Patterns & Best PracticesAmazon Web Services
 
Enabling Diverse Workload Scheduling in YARN
Enabling Diverse Workload Scheduling in YARNEnabling Diverse Workload Scheduling in YARN
Enabling Diverse Workload Scheduling in YARNDataWorks Summit
 
Η καθημερινή ζωή και η εκπαίδευση των Αθηναίων - Κεφάλαιο 22, Ιστορία Δ
Η καθημερινή ζωή και η εκπαίδευση των Αθηναίων - Κεφάλαιο 22, Ιστορία ΔΗ καθημερινή ζωή και η εκπαίδευση των Αθηναίων - Κεφάλαιο 22, Ιστορία Δ
Η καθημερινή ζωή και η εκπαίδευση των Αθηναίων - Κεφάλαιο 22, Ιστορία ΔΗλιάδης Ηλίας
 
Understanding and Improving Code Generation
Understanding and Improving Code GenerationUnderstanding and Improving Code Generation
Understanding and Improving Code GenerationDatabricks
 
Redis Overview
Redis OverviewRedis Overview
Redis OverviewHoang Long
 
38. Το ρωμαϊκό κράτος (Δ΄)
38. Το ρωμαϊκό κράτος (Δ΄)38. Το ρωμαϊκό κράτος (Δ΄)
38. Το ρωμαϊκό κράτος (Δ΄)Maniatis Kostas
 
Local Secondary Indexes in Apache Phoenix
Local Secondary Indexes in Apache PhoenixLocal Secondary Indexes in Apache Phoenix
Local Secondary Indexes in Apache PhoenixRajeshbabu Chintaguntla
 
19. Η μάχη των Πλαταιών και η ναυμαχία της Μυκαλης (Δ΄)
19. Η μάχη των Πλαταιών και η ναυμαχία της Μυκαλης (Δ΄) 19. Η μάχη των Πλαταιών και η ναυμαχία της Μυκαλης (Δ΄)
19. Η μάχη των Πλαταιών και η ναυμαχία της Μυκαλης (Δ΄) Maniatis Kostas
 
Η Αθήνα γίνεται «σχολείο της Ελλάδας»
Η Αθήνα γίνεται «σχολείο της Ελλάδας» Η Αθήνα γίνεται «σχολείο της Ελλάδας»
Η Αθήνα γίνεται «σχολείο της Ελλάδας» Dimitra Mylonaki
 
Κεφάλαιο 29 Η ηγεμονία της Θήβας (Δ΄)
Κεφάλαιο 29 Η ηγεμονία της Θήβας (Δ΄)Κεφάλαιο 29 Η ηγεμονία της Θήβας (Δ΄)
Κεφάλαιο 29 Η ηγεμονία της Θήβας (Δ΄)Maniatis Kostas
 
Deep Dive on Amazon Athena - AWS Online Tech Talks
Deep Dive on Amazon Athena - AWS Online Tech TalksDeep Dive on Amazon Athena - AWS Online Tech Talks
Deep Dive on Amazon Athena - AWS Online Tech TalksAmazon Web Services
 
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Apache Spark Data Source V2 with Wenchen Fan and Gengliang WangApache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Apache Spark Data Source V2 with Wenchen Fan and Gengliang WangDatabricks
 
Everything as Code with Terraform
Everything as Code with TerraformEverything as Code with Terraform
Everything as Code with TerraformAll Things Open
 
ΣΠΑΡΤΗ: Η ΖΩΗ ΣΤΗΝ ΠΟΛΗ
ΣΠΑΡΤΗ: Η ΖΩΗ ΣΤΗΝ ΠΟΛΗΣΠΑΡΤΗ: Η ΖΩΗ ΣΤΗΝ ΠΟΛΗ
ΣΠΑΡΤΗ: Η ΖΩΗ ΣΤΗΝ ΠΟΛΗMaria Froudaraki
 
Η Αθήνα γίνεται η πιο ισχυρή πόλη
Η Αθήνα γίνεται η πιο ισχυρή πόληΗ Αθήνα γίνεται η πιο ισχυρή πόλη
Η Αθήνα γίνεται η πιο ισχυρή πόληDimitra Mylonaki
 
Ο Κλεισθένης θεμελιωτής της Δημοκρατίας
Ο Κλεισθένης θεμελιωτής της ΔημοκρατίαςΟ Κλεισθένης θεμελιωτής της Δημοκρατίας
Ο Κλεισθένης θεμελιωτής της ΔημοκρατίαςPapadeli Language School
 
Care and Feeding of Catalyst Optimizer
Care and Feeding of Catalyst OptimizerCare and Feeding of Catalyst Optimizer
Care and Feeding of Catalyst OptimizerDatabricks
 

La actualidad más candente (20)

Nifi workshop
Nifi workshopNifi workshop
Nifi workshop
 
Build Data Lakes & Analytics on AWS: Patterns & Best Practices
Build Data Lakes & Analytics on AWS: Patterns & Best PracticesBuild Data Lakes & Analytics on AWS: Patterns & Best Practices
Build Data Lakes & Analytics on AWS: Patterns & Best Practices
 
Enabling Diverse Workload Scheduling in YARN
Enabling Diverse Workload Scheduling in YARNEnabling Diverse Workload Scheduling in YARN
Enabling Diverse Workload Scheduling in YARN
 
Η καθημερινή ζωή και η εκπαίδευση των Αθηναίων - Κεφάλαιο 22, Ιστορία Δ
Η καθημερινή ζωή και η εκπαίδευση των Αθηναίων - Κεφάλαιο 22, Ιστορία ΔΗ καθημερινή ζωή και η εκπαίδευση των Αθηναίων - Κεφάλαιο 22, Ιστορία Δ
Η καθημερινή ζωή και η εκπαίδευση των Αθηναίων - Κεφάλαιο 22, Ιστορία Δ
 
Understanding and Improving Code Generation
Understanding and Improving Code GenerationUnderstanding and Improving Code Generation
Understanding and Improving Code Generation
 
Redis Overview
Redis OverviewRedis Overview
Redis Overview
 
38. Το ρωμαϊκό κράτος (Δ΄)
38. Το ρωμαϊκό κράτος (Δ΄)38. Το ρωμαϊκό κράτος (Δ΄)
38. Το ρωμαϊκό κράτος (Δ΄)
 
Local Secondary Indexes in Apache Phoenix
Local Secondary Indexes in Apache PhoenixLocal Secondary Indexes in Apache Phoenix
Local Secondary Indexes in Apache Phoenix
 
Gremlin's Anatomy
Gremlin's AnatomyGremlin's Anatomy
Gremlin's Anatomy
 
19. Η μάχη των Πλαταιών και η ναυμαχία της Μυκαλης (Δ΄)
19. Η μάχη των Πλαταιών και η ναυμαχία της Μυκαλης (Δ΄) 19. Η μάχη των Πλαταιών και η ναυμαχία της Μυκαλης (Δ΄)
19. Η μάχη των Πλαταιών και η ναυμαχία της Μυκαλης (Δ΄)
 
Η Αθήνα γίνεται «σχολείο της Ελλάδας»
Η Αθήνα γίνεται «σχολείο της Ελλάδας» Η Αθήνα γίνεται «σχολείο της Ελλάδας»
Η Αθήνα γίνεται «σχολείο της Ελλάδας»
 
Κεφάλαιο 29 Η ηγεμονία της Θήβας (Δ΄)
Κεφάλαιο 29 Η ηγεμονία της Θήβας (Δ΄)Κεφάλαιο 29 Η ηγεμονία της Θήβας (Δ΄)
Κεφάλαιο 29 Η ηγεμονία της Θήβας (Δ΄)
 
Deep Dive on Amazon Athena - AWS Online Tech Talks
Deep Dive on Amazon Athena - AWS Online Tech TalksDeep Dive on Amazon Athena - AWS Online Tech Talks
Deep Dive on Amazon Athena - AWS Online Tech Talks
 
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Apache Spark Data Source V2 with Wenchen Fan and Gengliang WangApache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
 
Everything as Code with Terraform
Everything as Code with TerraformEverything as Code with Terraform
Everything as Code with Terraform
 
ΣΠΑΡΤΗ: Η ΖΩΗ ΣΤΗΝ ΠΟΛΗ
ΣΠΑΡΤΗ: Η ΖΩΗ ΣΤΗΝ ΠΟΛΗΣΠΑΡΤΗ: Η ΖΩΗ ΣΤΗΝ ΠΟΛΗ
ΣΠΑΡΤΗ: Η ΖΩΗ ΣΤΗΝ ΠΟΛΗ
 
Η Αθήνα γίνεται η πιο ισχυρή πόλη
Η Αθήνα γίνεται η πιο ισχυρή πόληΗ Αθήνα γίνεται η πιο ισχυρή πόλη
Η Αθήνα γίνεται η πιο ισχυρή πόλη
 
Introduction to AWS Glue
Introduction to AWS GlueIntroduction to AWS Glue
Introduction to AWS Glue
 
Ο Κλεισθένης θεμελιωτής της Δημοκρατίας
Ο Κλεισθένης θεμελιωτής της ΔημοκρατίαςΟ Κλεισθένης θεμελιωτής της Δημοκρατίας
Ο Κλεισθένης θεμελιωτής της Δημοκρατίας
 
Care and Feeding of Catalyst Optimizer
Care and Feeding of Catalyst OptimizerCare and Feeding of Catalyst Optimizer
Care and Feeding of Catalyst Optimizer
 

Más de Alireza AkhavanPour

Build TensorFlow input pipelines tf.data
Build TensorFlow input pipelines tf.dataBuild TensorFlow input pipelines tf.data
Build TensorFlow input pipelines tf.dataAlireza AkhavanPour
 
Deep face recognition & one-shot learning
Deep face recognition & one-shot learningDeep face recognition & one-shot learning
Deep face recognition & one-shot learningAlireza AkhavanPour
 
شبکه های کانولوشنالی در Kears
شبکه های کانولوشنالی در Kearsشبکه های کانولوشنالی در Kears
شبکه های کانولوشنالی در KearsAlireza AkhavanPour
 
شبکه های عصبی و کراس
شبکه های عصبی و کراسشبکه های عصبی و کراس
شبکه های عصبی و کراسAlireza AkhavanPour
 
A Comparative Study of varying parameters in invariant object recognition at ...
A Comparative Study of varying parameters in invariant object recognition at ...A Comparative Study of varying parameters in invariant object recognition at ...
A Comparative Study of varying parameters in invariant object recognition at ...Alireza AkhavanPour
 

Más de Alireza AkhavanPour (7)

Callbacks part2
Callbacks part2Callbacks part2
Callbacks part2
 
Callbacks part1
Callbacks part1Callbacks part1
Callbacks part1
 
Build TensorFlow input pipelines tf.data
Build TensorFlow input pipelines tf.dataBuild TensorFlow input pipelines tf.data
Build TensorFlow input pipelines tf.data
 
Deep face recognition & one-shot learning
Deep face recognition & one-shot learningDeep face recognition & one-shot learning
Deep face recognition & one-shot learning
 
شبکه های کانولوشنالی در Kears
شبکه های کانولوشنالی در Kearsشبکه های کانولوشنالی در Kears
شبکه های کانولوشنالی در Kears
 
شبکه های عصبی و کراس
شبکه های عصبی و کراسشبکه های عصبی و کراس
شبکه های عصبی و کراس
 
A Comparative Study of varying parameters in invariant object recognition at ...
A Comparative Study of varying parameters in invariant object recognition at ...A Comparative Study of varying parameters in invariant object recognition at ...
A Comparative Study of varying parameters in invariant object recognition at ...
 

تحلیل با رویکرد یادگیری ژرف بر بستر کلان‌داده

  • 1. ‫د‬ ‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬ ‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬‫اده‬(4) ‫تهران‬ ،‫شریف‬ ‫صنعتی‬ ‫دانشگاه‬ ‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬1 Akhavan@alirezaweb.com ‫اخوان‬ ‫علیرضا‬‫پور‬ 6‫بهمن‬1395 ‫علیرضا‬‫اخوان‬‫پور‬ www.Bigdataworkgroup.ir
  • 2. ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬2 ‫ِي‬‫ر‬ْ‫د‬َ‫ص‬ ‫ِي‬‫ل‬ ْ‫ح‬َ‫ر‬ْ‫ش‬‫ا‬ ِّ‫ب‬َ‫ر‬ َ‫ل‬‫َا‬‫ق‬﴿۲۵﴾‫ِي‬‫ر‬ْ‫م‬َ‫أ‬ ‫ِي‬‫ل‬ ْ‫ر‬ِّ‫س‬َ‫ي‬َ‫و‬﴿۲۶﴾ ‫ِي‬‫ن‬‫َا‬‫س‬ِّ‫ل‬ ‫ِّن‬‫م‬ ً‫ة‬َ‫د‬ْ‫ق‬ُ‫ع‬ ْ‫ل‬ُ‫ل‬ْ‫ح‬‫َا‬‫و‬﴿۲۷﴾‫ِي‬‫ل‬ْ‫و‬َ‫ق‬ ‫ُوا‬‫ه‬َ‫ق‬ْ‫ف‬َ‫ي‬﴿۲۸﴾ (‫طه‬ ‫سوره‬)
  • 3.  Torch  Caffe  Theano (Keras, Lasagne)  CuDNN  Tensorflow  Mxnet  ... ‫علیرضا‬‫اخوان‬‫پور‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬ ‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ 3 ‫های‬‫چارچوب‬ ‫ژرف‬ ‫یادگیری‬
  • 4. ‫در‬ ‫آمار‬Github ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬4 Name release Star Fork Tensorflow Nov 1, 2015 44k 20k caffe Sep 8, 2013 15k 10k keras Mar 22, 2015 11k 4k mxnet Apr 26, 2015 8k 3k torch Jan 22, 2012 6k 2k theano Jan 6, 2008 5k 2k Last update: 2017 22 January
  • 5. ‫گوگل‬ ‫در‬ ‫جو‬ ‫و‬ ‫جست‬ ‫آمار‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬5 https://www.google.com/trends/explore?date=today 12-m&q=tensorflow tutorial,torch tutorial,theano tutorial,caffe tutorial,Mxnet tutorial
  • 6. ‫چارچوب؟‬ ‫انتخاب‬ ‫معیارهای‬! ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬6 •‫پیکربندی‬ ‫فایل‬‫نویسی؟‬‫برنامه‬ ‫یا‬! • Configuration file: Caffe, DistBelief and CNTK • programmatic generation: Torch, Theano and Tensorflow •‫نویسی‬‫برنامه‬ ‫زبان‬ ‫انتخاب‬ • Lua (Torch) vs. Python (Theano, Tensorflow) vs others
  • 7. ‫مقایسه‬Theano‫و‬Tensorflow ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬7 ‫پذیری‬ ‫توزیع‬ ‫سرعت‬ ‫کاربرد‬ ‫عملی‬ ‫آکادمیک‬ https://github.com/soumith/convnet-benchmarks (Soumith Chintala , Facebook AI Research) 2015  2016 
  • 8. ‫کنند؟‬‫می‬ ‫استفاده‬ ‫تنسورفلو‬ ‫از‬ ‫کسانی‬ ‫چه‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬8
  • 9. ‫علیرضا‬‫اخوان‬‫پور‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬ ‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ 9 ‫تنسورفل‬ ‫مبانی‬‫و‬ ‫گوگل‬ ‫ژرف‬ ‫یادگیری‬ ‫ورک‬‫فریم‬‫شد‬ ‫منتشر‬ ‫باز‬‫متن‬ ‫صورت‬ ‫به‬ ‫اخیرا‬ ‫که‬‫است‬ ‫ه‬. ‫گیری‬‫مشتق‬ ‫و‬ ‫بهینه‬ ‫محاسباتی‬ ‫عملیات‬ ‫گراف‬ ‫گرادیان‬ ‫ی‬‫محاسبه‬
  • 10. ‫چیست؟‬ ‫تنسور‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬10 ،‫ساده‬ ‫عبارت‬ ‫به‬‫ی‬‫آرایه‬n‫اعداد‬ ‫از‬ ‫بعدی‬
  • 11. ‫داده‬ ‫جریان‬ ‫گراف‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬11 ‫تنسورفلو‬‫تعریف‬‫محاسبات‬‫از‬‫اجرا‬‫اس‬ ‫کرده‬ ‫جدا‬ ‫را‬‫ت‬. ‫گام‬1:‫محاسباتی‬ ‫گراف‬ ‫تعریف‬ ‫گام‬2:‫یک‬ ‫از‬ ‫استفاده‬‫برای‬ ‫نشست‬‫در‬ ‫عملیات‬ ‫اجرای‬‫گراف‬ ‫این‬.
  • 12. ‫داده‬ ‫جریان‬ ‫گراف‬ import tensorflow as tf a = tf.add(2, 3) ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬12 ‫چرا‬x‫و‬y‫؟‬! ‫نسبت‬ ‫نام‬ ‫ها‬‫آن‬ ‫به‬ ‫خودکار‬ ‫صورت‬ ‫به‬ ‫تنسورفلو‬ ،‫نکنید‬ ‫گذاری‬‫نام‬ ‫را‬ ‫محاسباتی‬ ‫گراف‬ ‫رئوس‬ ‫صریح‬ ‫صورت‬ ‫به‬ ‫اگر‬‫دهد‬‫می‬. ‫مثال‬ ‫این‬ ‫در‬ x = 2 y = 3
  • 13. ‫از‬ ‫استفاده‬ ‫ی‬‫ساده‬ ‫ی‬‫برنامه‬numpy ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬13
  • 14. ‫تنسورفلو‬ ‫با‬ ‫بازنویسی‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬14 In [2]: import tensorflow as tf In [3]: tf.InteractiveSession() In [4]: a = tf.zeros((2,2)); b = tf.ones((2,2)) In [5]: tf.reduce_sum(b, reduction_indices=1).eval() Out[5]: array([ 2., 2.], dtype=float32) In [6]: a.get_shape() Out[6]: TensorShape([Dimension(2), Dimension(2)]) In [7]: tf.reshape(a, (1, 4)).eval() Out[7]: array([[ 0., 0., 0., 0.]], dtype=float32) session‫؟‬! ‫؟‬! eval TensorShape‫مثل‬ tuple‫و‬ ‫اد‬‫ا‬‫ی‬ ‫ر‬ ‫اد‬‫ا‬‫ه‬ ‫میکنند‬ ‫در‬ ‫رف‬
  • 15. ‫از‬ ‫استفاده‬ ‫ی‬‫مقایسه‬numpy‫و‬Tensorflow ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬15 Numpy TensorFlow a= np.zeros((2,2)); b = np.ones((2,2)) a= tf.zeros((2,2)), b = tf.ones((2,2)) np.sum(b, axis=1) tf.reduce_sum(a,reduction_indices=[1]) a.shape a.get_shape() np.reshape(a, (1,4)) tf.reshape(a, (1,4)) b * 5 + 1 b * 5 + 1 np.dot(a,b) tf.matmul(a, b) a[0,0], a[:,0], a[0,:] a[0,0], a[:,0], a[0,:]
  • 16. ‫صریح‬ ‫ارزیابی‬ ‫به‬ ‫تنسورفلو‬‫نیاز‬‫دارد‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬16 In [5]: a = np.zeros((2,2)) In [6]: ta = tf.zeros((2,2)) ‫تنسورفلو‬‫یک‬‫گراف‬‫محدسبدتی‬ ‫تعریف‬‫‌کند‬‫ی‬‫م‬‫که‬‫تا‬‫زمانی‬‫که‬‫ارزی‬‫ابی‬ ‫نشود‬‫هیچ‬‫مقدار‬‫عددی‬‫ندارد‬! In [7]: print(a) [[ 0. 0.] [ 0. 0.]] In [8]: print(ta) Tensor("zeros_1:0", shape=(2, 2), dtype=float32) In [9]: print(ta.eval()) [[ 0. 0.] [ 0. 0.]]
  • 17. ‫نشست‬ ‫شئ‬(session)‫در‬‫تنسورفلو‬(1) ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬17 ”‫شیء‬ ‫یک‬session‫محیطی‬‫کند‬‫می‬ ‫سازی‬‫کپسوله‬ ‫را‬ ‫شوند‬ ‫می‬ ‫ارزیابی‬ ‫تنسور‬ ‫اشیاء‬ ‫آن‬ ‫در‬ ‫که‬!“Tensorflow_Docs In [1]: a = tf.constant(5.0) In [2]: b = tf.constant(6.0) In [3]: c = a * b In [4]: with tf.Session() as sess: ....: print(sess.run(c)) ....: print(c.eval()) ....: 30.0 30.0 c.eval()‌‫معادل‬sess.run(c)‌‫در‬ ‌‫‌ی‬‫ه‬‫محدود‬session‫فعال‬!
  • 18. ‫نشست‬ ‫شئ‬(session)‫تنسورفلو‬ ‫در‬(2) ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬18 ‫یک‬Session‫ممکن‬‫است‬‫منابعی‬‫در‬‫اختیار‬‫گرفته‬‫باشد‬‫و‬‫حتما‬‫باید‬‫بعد‬‫از‬‫استفاده‬‫‌ها‬‫ن‬‫آ‬‫را‬‫آزادک‬‫نیم‬.
  • 19. ‫گراف‬ ‫از‬ ‫بیشتر‬ ‫هایی‬ ‫مثال‬(1) x = tf.constant(2) y = 3 op1 = tf.add(x, y) op2 = tf.mul(x, y) op3 = tf.pow(op2, op1) with tf.Session() as sess: op3 = sess.run(op3) ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬19
  • 20. ‫از‬ ‫بیشتر‬ ‫هایی‬ ‫مثال‬‫گراف‬(2) x = 2 y = 3 op1 = tf.add(x, y) op2 = tf.mul(x, y) useless = tf.mul(x, op1) op3 = tf.pow(op2, op1) with tf.Session() as sess: op3 = sess.run(op3) ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬20 ‫با‬‫اجرای‬op3‫نیازی‬‫به‬useless‫نمیشود‬. ‫پس‬‫نشست‬‫آن‬‫را‬‫اجرا‬‫‌کند‬‫ی‬‫نم‬. ‫‌جویی‬‫ه‬‫صرف‬‫در‬‫محاسبات‬
  • 21. ‫از‬ ‫بیشتر‬ ‫هایی‬ ‫مثال‬‫گراف‬(3) x = 2 y = 3 op1 = tf.add(x, y) op2 = tf.mul(x, y) useless = tf.mul(x, op1) op3 = tf.pow(op2, op1) with tf.Session() as sess: op3, not_useless = sess.run([op3, useless]) ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬21 ‫در‬‫این‬‫حالت‬useless‫نیز‬‫محاسبه‬‫‌شود‬‫ی‬‫م‬.
  • 22. Variable‫تنسورفلو‬ ‫در‬ ‫ها‬(1) ‫هنگامی‬‫داریم‬ ‫متغیر‬ ‫تعریف‬ ‫به‬ ‫نیاز‬ ‫ها‬‫پارامتر‬ ‫داری‬‫نگه‬ ‫برای‬ ،‫دهیم‬‫می‬ ‫آموزش‬ ‫را‬ ‫مدل‬ ‫یک‬ ‫که‬. variable‫باشد‬ ‫متغیر‬ ‫رسانی‬ ‫روز‬ ‫به‬ ‫به‬ ‫نیاز‬ ‫که‬ ‫روند‬‫می‬ ‫کار‬ ‫به‬ ‫مواردی‬ ‫در‬ ‫ها‬.TensorFlow_Docs ‫شبکه‬ ‫های‬‫وزن‬ ‫مانند‬ ‫نوع‬ ‫از‬ ‫شد‬ ‫مالحظه‬ ‫پیشین‬ ‫اسالیدهای‬ ‫در‬ ‫که‬ ‫تنسورهای‬ ‫تمام‬constant‫بودند‬! ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬22
  • 23. Variable‫تنسورفلو‬ ‫در‬ ‫ها‬(2) In [32]: W1 = tf.ones((2,2)) In [33]: W2 = tf.Variable(tf.zeros((2,2)), name="weights") In [34]: with tf.Session() as sess: print(sess.run(W1)) sess.run(tf.initialize_all_variables()) print(sess.run(W2)) ....: [[ 1. 1.] [ 1. 1.]] [[ 0. 0.] [ 0. 0.]] ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬23 ‌‫فراخوانی‬tf.initialize_all_variables()‌‫برای‬‫مقدار‌دهی‌اولیه‬ ‫تدبع‬tf.initialize_all_variables()‫شو‬‫می‬ ‫حذف‬ ‫ی‬ ‫زو‬ ‫به‬. ‫ن‬ ‫گز‬ ‫جد‬:tf.global_variables_initializer
  • 24. Variable‫تنسورفلو‬ ‫در‬ ‫ها‬(3) •Variable‫شوند‬ ‫اولیه‬ ‫مقداردهی‬ ‫باید‬ ‫حتما‬ ‫تنسورفلو‬ ‫در‬ ‫ها‬(initialize) •‫با‬ ‫مقایسه‬constant‫؟‬! ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬24 In [38]: W = tf.Variable(tf.zeros((2,2)), name="weights") In [39]: R = tf.Variable(tf.random_normal((2,2)), name="random_weights") In [40]: with tf.Session() as sess: ....: sess.run(tf.global_variables_initializer()) ....: print(sess.run(W)) ....: print(sess.run(R)) ....: ‫اشیاء‬variable‫را‬‫می‬‫توان‬‌‫با‬‫ثابت‬‌‫‌ها‬(constant‌)‫یا‬‫مقادیر‬‫تصادفی‬‫مقداردهی‬‫اولیه‬‫کرد‬ ‌‫مقدار‌دهی‌اولیه‌تمام‬‌‫متغیرها‬‌‫با‬‫مقادیر‌قبال‌مشخص‌شده‬.
  • 25. ‫یک‬ ‫رسانی‬ ‫روز‬ ‫به‬variable ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬25 In [63]: state = tf.Variable(0, name="counter") In [64]: new_value = tf.add(state, tf.constant(1)) In [65]: update = tf.assign(state, new_value) In [66]: with tf.Session() as sess: ....: sess.run(tf.global_variables_initializer()) ....: print(sess.run(state)) ....: for _ in range(3): ....: sess.run(update) ....: print(sess.run(state)) ....: ‫ل‬ ‫معد‬new_value = state + 1 ‫ل‬ ‫معد‬state = new_value ‫ل‬ ‫معد‬ state = 0 print(state) for _ in range(3): state = state + 1 print(state) ‫خروجی‬‫قطعه‌کد‬: 0 1 2 3
  • 26. ‫واکشی‬Variable‫تنسورفلو‬ ‫در‬ ‫ها‬(1) ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬26 In [82]: input1 = tf.constant(3.0) In [83]: input2 = tf.constant(2.0) In [84]: input3 = tf.constant(5.0) In [85]: intermed = tf.add(input2, input3) In [86]: mul = tf.mul(input1, intermed) In [87]: with tf.Session() as sess: ....: result = sess.run([mul, intermed]) ....: print(result) ....: ‫خروجی‬: [21.0, 7.0] ‫فراخوانی‬sess.run(var)‫در‬‫یک‬‫نشست‬،‫مقدار‬‫آن‬‫متغیر‬‫را‬‫‌دهد‬‫ی‬‫م‬. ‫‌توان‬‫ی‬‫م‬‫چندین‬‫متغیر‬‫را‬‫همزمان‬‫واکشی‬(fetch)‫کرد‬.
  • 27. ‫واکشی‬Variable‫تنسورفلو‬ ‫در‬ ‫ها‬(2) ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬27 input1 = tf.constant(3.0) input2 = tf.constant(2.0) input3 = tf.constant(5.0) intermed = tf.add(input2, input3) mul = tf.mul(input1, intermed) with tf.Session() as sess: result = sess.run([mul, intermed]) print(result)
  • 28. ‫ورودی‬ ‫بودند‬ ‫شده‬ ‫تعریف‬ ‫دستی‬ ‫صورت‬ ‫به‬ ‫تنسورها‬ ‫پیشین‬ ‫اسالیدهای‬ ‫تمام‬ ‫در‬. ‫بدهیم؟‬ ‫ورودی‬ ‫آن‬ ‫به‬ ‫تنسورفلو‬ ‫از‬ ‫بیرون‬ ‫از‬ ‫چگونه‬! oConstant oVariable o‫؟‬! ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬28 ‫ساده‬ ‫حل‬ ‫راه‬:‫از‬ ‫استفاده‬numpy
  • 29. ‫از‬ ‫استفاده‬ ‫با‬ ‫ورودی‬numpy ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬29 In [93]: a = np.zeros((3,3)) In [94]: ta = tf.convert_to_tensor(a) In [95]: with tf.Session() as sess: ....: print(sess.run(ta)) ....: [[ 0. 0. 0.] [ 0. 0. 0.] [ 0. 0. 0.]]
  • 30. ‫با‬ ‫ورودی‬Placeholder‫و‬Feed Dictionary ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬30 In [96]: input1 = tf.placeholder(tf.float32) In [97]: input2 = tf.placeholder(tf.float32) In [98]: output = tf.mul(input1, input2) In [99]: with tf.Session() as sess: ....: print(sess.run([output], feed_dict={input1:[7.], input2:[2.]})) ....: [array([ 14.], dtype=float32)] ‌‫تعریف‌اشیاء‬tf.placeholder‫برای‌ورود‌داده‌ها‬ Feed data into computation graph. Fetch value of output from computation graph. ‫از‬ ‫استفاده‬ ‫با‬ ‫ورودی‬numpy‫نیست‬ ‫پذیر‬‫مقیاس‬ ‫اما‬ ،‫است‬ ‫راحت‬ ‫و‬ ‫پذیر‬ ‫امکان‬. ‫از‬ ‫استفاده‬tf.placeholder‫و‬feed_dict
  • 31. ‫مثال‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬31
  • 32. ‫با‬ ‫ورودی‬Placeholder‫و‬Feed Dictionary(3) ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬32 In [96]: input1 = tf.placeholder(tf.float32) In [97]: input2 = tf.placeholder(tf.float32) In [98]: output = tf.mul(input1, input2) In [99]: with tf.Session() as sess: ....: print(sess.run([output], feed_dict={input1:[7.], input2:[2.]})) ....: [array([ 14.], dtype=float32)]
  • 33. ‫علیرضا‬‫اخوان‬‫پور‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬ ‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ 34 ‫عملی‬ ‫مثال‬
  • 34. ‫مرور‬... ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬35
  • 35. ‫ساده‬ ‫مثال‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬36
  • 36. Softmax 𝑌 = 𝑆𝑜𝑓𝑡𝑚𝑎𝑥 ( 𝑋. 𝑊 + 𝑏 ) ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬37 ‫بینی‬‫ییش‬ 𝒀[𝟏𝟎𝟎, 𝟏𝟎] ‫ر‬ ‫تصدو‬ 𝑿[𝟏𝟎𝟎, 𝟕𝟒𝟖] ‫هد‬ ‫وز‬ 𝑾[𝟕𝟒𝟖, 𝟏𝟎] ‫دس‬ ‫بد‬ b[𝟏𝟎] ‫سی‬ ‫مدتر‬ ‫ضرب‬
  • 37. Softmax‫تنسورفلو‬ ‫در‬ 𝑌 = 𝑡𝑓. 𝑛𝑛. 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑡𝑓. 𝑚𝑎𝑡𝑚𝑢𝑙(𝑋, 𝑊) + 𝑏) ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬38 𝑿[𝟏𝟎𝟎, 𝟕𝟒𝟖] 𝑾[𝟕𝟒𝟖, 𝟏𝟎] b[𝟏𝟎] ‫سی‬ ‫مدتر‬ ‫ضرب‬ Tensor shapes:
  • 38. − 𝑌𝑖 ′ . log(𝑌𝑖) ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬39 Cross entropy: actual probabilities, “one-hot” encoded computed probabilities 
  • 39. ‫اولیه‬ ‫مقداردهی‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬40 import tensorflow as tf X = tf.placeholder(tf.float32, [None, 28, 28, 1]) W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) init = tf.initialize_all_variables()
  • 40. ‫معیار‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬41 # model Y = tf.nn.softmax(tf.matmul(tf.reshape(X, [-1, 784]), W) + b) # placeholder for correct answers Y_ = tf.placeholder(tf.float32, [None, 10]) # loss function cross_entropy = -tf.reduce_sum(Y_ * tf.log(Y)) # % of correct answers found in batch is_correct = tf.equal(tf.argmax(Y,1), tf.argmax(Y_,1)) accuracy = tf.reduce_mean(tf.cast(is_correct, tf.float32))
  • 41. ‫آموزش‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬42 optimizer = tf.train.GradientDescentOptimizer(0.003) train_step = optimizer.minimize(cross_entropy)
  • 42. ‫اجرا‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬43 sess = tf.Session() sess.run(init) for i in range(1000): # load batch of images and correct answers batch_X, batch_Y = mnist.train.next_batch(100) train_data={X: batch_X, Y_: batch_Y} # train sess.run(train_step, feed_dict=train_data) # success ? a,c = sess.run([accuracy, cross_entropy], feed_dict=train_data) # success on test data ? test_data={X: mnist.test.images, Y_: mnist.test.labels} a,c = sess.run([accuracy, cross_entropy, It], feed=test_data)
  • 43. ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬44
  • 44. ‫شده‬ ‫توزیع‬ ‫محاسبات‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬45 •‫روی‬ ‫موازی‬ ‫اجرای‬ ‫برای‬ ‫را‬ ‫محاسباتی‬ ‫گراف‬ ‫توان‬‫می‬cpu ،‫ها‬GPU‫تقس‬ ‫قسمت‬ ‫چند‬ ‫به‬ ‫مختلف‬ ‫های‬‫دستگاه‬ ‫و‬ ‫ها‬‫یم‬ ‫کرد‬. with tf.device('/gpu:2'): a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], name='a') b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], name='b') c = tf.matmul(a, b)
  • 45. ‫علیرضا‬‫اخوان‬‫پور‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬ ‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ 46 ‫منابع‬ ‫بیشت‬ ‫مطالعات‬ ‫و‬‫ر‬
  • 46. ‫تنسورفلو‬ ‫آموزش‬ ‫رایگان‬ ‫و‬ ‫آنالین‬ ‫های‬‫درس‬ ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬47 https://www.udacity.com/course/deep-learning--ud730 Deep Learning by (using Tensorflow ( Deep Learning with TensorFlow https://bigdatauniversity.com/courses/deep-learning-tensorflow/ CS 20SI: Tensorflow for Deep Learning Research https://web.stanford.edu/class/cs20si/
  • 47. https://www.youtube.com/watch?v=l6K-MFgIEjc https://cs224d.stanford.edu/lectures/CS224d-Lecture7.pdf 19th Apr 2016 ‫منابع‬‫مطالعه‬ ‫برای‬ ‫مفید‬ ‫و‬ ‫ارائه‬ ‫این‬ ‫اصلی‬... ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬48 https://www.youtube.com/watch?v=vq2nnJ4g6N0 https://gotocon.com/...TensorflowAndDeepLearningWithoutAPhD.pdf 8 Nov 2016 http://web.stanford.edu/class/cs20si/lectures/slides_01.pdf 13 and 18 Jan 2017 http://web.stanford.edu/class/cs20si/lectures/slides_02.pdf
  • 48. ‫منابع‬ ‫سایر‬ TensorFlow official site http://tensorflow.org/ Deep Learning Frameworks Compared by Siraj Raval https://www.youtube.com/watch?v=MDP9FfsNx60 TensorFlow - Ep. 22 (Deep Learning SIMPLIFIED) https://www.youtube.com/watch?v=bYeBL92v99Y ‫علیرضا‬‫اخوان‬‫پور‬‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬49
  • 49. ‫د‬ ‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬ ‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬‫اده‬(4) ‫تهران‬ ،‫شریف‬ ‫صنعتی‬ ‫دانشگاه‬ ‫داده؛‬ ‫کالن‬ ‫کارگروه‬ ‫تشکر‬ ‫با‬ ‫داده‬‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬ ‫علمی‬ ‫ارائه‬ ‫چهارم‬ ‫جلسه‬50 Akhavan@alirezaweb.com ‫پور‬ ‫اخوان‬ ‫علیرضا‬ 6‫بهمن‬1395 ‫علیرضا‬‫اخوان‬‫پور‬