SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
‫د‬ ‫کالن‬ ‫بستر‬ ‫بر‬ ‫ژرف‬ ‫یادگیری‬ ‫رویکرد‬ ‫با‬ ‫تحلیل‬‫اده‬(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
‫علیرضا‬‫اخوان‬‫پور‬

Contenu connexe

Tendances

improper integrals
improper integralsimproper integrals
improper integrals2461998
 
Python lab basics
Python lab basicsPython lab basics
Python lab basicsAbi_Kasi
 
Gram-Schmidt Orthogonalization and QR Decompositon
Gram-Schmidt Orthogonalization and QR Decompositon Gram-Schmidt Orthogonalization and QR Decompositon
Gram-Schmidt Orthogonalization and QR Decompositon Mohammad Umar Rehman
 
Python For Data Analysis | Python Pandas Tutorial | Learn Python | Python Tra...
Python For Data Analysis | Python Pandas Tutorial | Learn Python | Python Tra...Python For Data Analysis | Python Pandas Tutorial | Learn Python | Python Tra...
Python For Data Analysis | Python Pandas Tutorial | Learn Python | Python Tra...Edureka!
 
TensorFlow and Keras: An Overview
TensorFlow and Keras: An OverviewTensorFlow and Keras: An Overview
TensorFlow and Keras: An OverviewPoo Kuan Hoong
 
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...PyData
 
Introduction to TensorFlow
Introduction to TensorFlowIntroduction to TensorFlow
Introduction to TensorFlowMatthias Feys
 
Laplace transforms
Laplace transformsLaplace transforms
Laplace transformsKarnav Rana
 
3.2.interpolation lagrange
3.2.interpolation lagrange3.2.interpolation lagrange
3.2.interpolation lagrangeSamuelOseiAsare
 
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...Edureka!
 
Machine Learning with TensorFlow 2
Machine Learning with TensorFlow 2Machine Learning with TensorFlow 2
Machine Learning with TensorFlow 2Sarah Stemmler
 
C.v.n.m (m.e. 130990119004-06)
C.v.n.m (m.e. 130990119004-06)C.v.n.m (m.e. 130990119004-06)
C.v.n.m (m.e. 130990119004-06)parth98796
 
complex variable PPT ( SEM 2 / CH -2 / GTU)
complex variable PPT ( SEM 2 / CH -2 / GTU)complex variable PPT ( SEM 2 / CH -2 / GTU)
complex variable PPT ( SEM 2 / CH -2 / GTU)tejaspatel1997
 
Intro to Web Development Using Python and Django
Intro to Web Development Using Python and DjangoIntro to Web Development Using Python and Django
Intro to Web Development Using Python and DjangoChariza Pladin
 
Argparse: Python command line parser
Argparse: Python command line parserArgparse: Python command line parser
Argparse: Python command line parserTimo Stollenwerk
 
Some Engg. Applications of Matrices and Partial Derivatives
Some Engg. Applications of Matrices and Partial DerivativesSome Engg. Applications of Matrices and Partial Derivatives
Some Engg. Applications of Matrices and Partial DerivativesSanjaySingh011996
 
Recurrent Neural Networks, LSTM and GRU
Recurrent Neural Networks, LSTM and GRURecurrent Neural Networks, LSTM and GRU
Recurrent Neural Networks, LSTM and GRUananth
 

Tendances (20)

improper integrals
improper integralsimproper integrals
improper integrals
 
Python lab basics
Python lab basicsPython lab basics
Python lab basics
 
Gram-Schmidt Orthogonalization and QR Decompositon
Gram-Schmidt Orthogonalization and QR Decompositon Gram-Schmidt Orthogonalization and QR Decompositon
Gram-Schmidt Orthogonalization and QR Decompositon
 
Word embedding
Word embedding Word embedding
Word embedding
 
Python For Data Analysis | Python Pandas Tutorial | Learn Python | Python Tra...
Python For Data Analysis | Python Pandas Tutorial | Learn Python | Python Tra...Python For Data Analysis | Python Pandas Tutorial | Learn Python | Python Tra...
Python For Data Analysis | Python Pandas Tutorial | Learn Python | Python Tra...
 
TensorFlow and Keras: An Overview
TensorFlow and Keras: An OverviewTensorFlow and Keras: An Overview
TensorFlow and Keras: An Overview
 
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
 
Properties of laplace transform
Properties of laplace transformProperties of laplace transform
Properties of laplace transform
 
Introduction to TensorFlow
Introduction to TensorFlowIntroduction to TensorFlow
Introduction to TensorFlow
 
Laplace transforms
Laplace transformsLaplace transforms
Laplace transforms
 
Laplace transform
Laplace transformLaplace transform
Laplace transform
 
3.2.interpolation lagrange
3.2.interpolation lagrange3.2.interpolation lagrange
3.2.interpolation lagrange
 
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...
Advanced Python Tutorial | Learn Advanced Python Concepts | Python Programmin...
 
Machine Learning with TensorFlow 2
Machine Learning with TensorFlow 2Machine Learning with TensorFlow 2
Machine Learning with TensorFlow 2
 
C.v.n.m (m.e. 130990119004-06)
C.v.n.m (m.e. 130990119004-06)C.v.n.m (m.e. 130990119004-06)
C.v.n.m (m.e. 130990119004-06)
 
complex variable PPT ( SEM 2 / CH -2 / GTU)
complex variable PPT ( SEM 2 / CH -2 / GTU)complex variable PPT ( SEM 2 / CH -2 / GTU)
complex variable PPT ( SEM 2 / CH -2 / GTU)
 
Intro to Web Development Using Python and Django
Intro to Web Development Using Python and DjangoIntro to Web Development Using Python and Django
Intro to Web Development Using Python and Django
 
Argparse: Python command line parser
Argparse: Python command line parserArgparse: Python command line parser
Argparse: Python command line parser
 
Some Engg. Applications of Matrices and Partial Derivatives
Some Engg. Applications of Matrices and Partial DerivativesSome Engg. Applications of Matrices and Partial Derivatives
Some Engg. Applications of Matrices and Partial Derivatives
 
Recurrent Neural Networks, LSTM and GRU
Recurrent Neural Networks, LSTM and GRURecurrent Neural Networks, LSTM and GRU
Recurrent Neural Networks, LSTM and GRU
 

Plus 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
 

Plus 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 ‫علیرضا‬‫اخوان‬‫پور‬