ساخت شبکه در تنسورفلو

در جلسه دوم آموزش تنسورفلو دو عامل داده‌ها (Tensor) و شبکه (Flow) را پارامترهای مهم در برنامه‌نویسی تنسورفلو معرفی کردیم. در پنج جلسه گذشته، بر اساس همین دو عامل بود که آموزش تنسورفلو را پیش بردیم؛ یعنی، ابتدا به نحوه تعریف داده‌ها مانند نحوه تعریف متغیرها (جلسه سوم) و تعریف آرایه‌ها (جلسه چهارم) پرداختیم. بعد از اینکه نحوه تعریف داده‌ها را یاد گرفتیم، باید می‌آموختیم که گراف یا شبکه مدنظرمان را بسازیم. برای ساختن گراف یا شبکه نیاز داریم عملیات جبری در تنسورفلو را یاد بگیریم که به‌همین دلیل جلسه پنجم را به عملیات جبری در تنسورفلو اختصاص دادیم. حال، آماده‌ایم که در تنسورفلو گراف یا شبکه بسازیم و برای شبکه ساده‌مان ورودی تعریف کنیم و خروجی‌هایش را مشاهده کنیم. البته، هنوز زمان مناسبی برای ساخت شبکه‌های عصبی مانند شبکه‌های کانولوشنی نیست و در این جلسه می‌خواهیم درمورد گراف‌های کوچک و ساده با عملیات جبری در قالب یک مثال توضیح دهیم. با ششمین جلسه آموزش تنسورفلو یعنی ساخت شبکه در تنسورفلو در کمپنا همراه باشید…


یک نمونه گراف یا شبکه ساده در تصویر زیر نشان داده شده است. همان‌طور که مشاهده می‌کنید، شبکه مبتنی بر عملگرها و نوع‌داده‌هایی است که در جلسه‌های قبلی آموختید. در ادامه، گام به گام در مورد کدنویسی این گراف در تنسورفلو توضیح داده خواهد شد.

graph

بیایید ابتدا ورودی‌ها را تعریف کنیم؛ با توجه به شبکه، سه ورودی ثابت a، b و c داریم که به‌صورت زیر به‌راحتی تعریف می‌شوند. قطعا نیازی نیست در مورد tf.constant توضیح دهیم، چون در جلسات قبل با این دستور آشنا شدید.

a = tf.constant(5)
b = tf.constant(2)
c = tf.constant(3)

پس از تعریف ورودی‌ها، باید سه عملگر d، e و f را تعریف کنیم. این عملگرها، ورودی‌هایی دارند و ابتدا باید d و e را تعریف کنیم و سپس به سراغ f برویم. عملگر d یک عملگر ضرب متشکل از ورودی‌های a و b است. بنابراین، اینگونه تعریف می‌شود:

d = tf.multiply(a,b)

عملگر e هم یک عملگر جمع هست که حاصل‌جمع دو ورودی b و c است. عملگر e را به‌صورت زیر می‌نویسیم: 

e = tf.add(c,b)

درنهایت، عملگر تفریق f از تفاضل خروجی دو عملگر d و e بدست می‌آید که در زیر کد آنرا مشاهده می‌کنید:

f = tf.subtract(d,e)

اولین شبکه‌مان را در تنسورفلو طراحی کردیم و حالا مشتاقیم که خروجی کار را مشاهده کنیم. انتظار داریم که بدانید برای مشاهده خروجی باید از tf.Session استفاده کنیم. ابتدا tf.Session را تعریف کرده و سپس با استفاده از run خروجی که همان f هست مشاهده می‌کنیم. کد مشاهده خروجی به‌صورت زیر است: 

sess = tf.Session()
outs = sess.run(f)
sess.close()
print("outs = {}".format(outs))

Out:
outs = 5

تا اینجا کار بزرگی انجام دادیم، شبکه‌ای طراحی کردیم و خروجی آنرا نیز دیدیم، اما این شبکه اصلا به‌کار ما نمی‌آید. نه‌تنها در این شبکه خبری از نورون و شبکه عصبی نیست، بلکه ایرادهای فراوان دیگری هم دارد. به‌عنوان مثال، شبکه‌ای که ورودی ثابت داشته باشد و نتوانیم ورودی‌های متفاوت به آن بدهیم چه ارزشی دارد؟! ایرادهای دیگری هم دارد، اما بیایید شبکه را طوری تغییر دهیم که قابلیت تغییر مقدار ورودی داشته باشد. برای این‌کار نیازی نیست کدها کاملا تغییر کند، با تغییری جزئی در ورودی‌های a، b و c می‌توانیم این‌کار را انجام دهیم. اگر خاطرتان باشد، تعریف داده‌ها به سه شکل tf.constant، tf.Variable و tf.placeholder انجام می‌شد. می‌توانیم از هر دو حالت tf.Variable و tf.placeholder استفاده کنیم، اما بهتراست tf.placeholder را بکار ببریم. یادتان باشد، ورودی‌های خود را با tf.placeholder تعریف کنید و اگر یک پارامتری در شبکه دارید که نیاز به یک مقدار اولیه دارد و درطول فرآیند اجرای برنامه ممکن است مقدار آن تغییر کند از tf.Variable  استفاده کنید. کدهای شبکه درحالت ورودی‌های متغیر به‌صورت زیر خواهد بود: 

a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
c = tf.placeholder(tf.float32)
d = tf.multiply(a,b)
e = tf.add(c,b)
f = tf.subtract(d,e)

حال برای دیدن خروجی باید به شکل زیر کد بنویسیم:

sess = tf.Session()
outs = sess.run(f, {a:-2, b:3, c:4})
sess.close()
print("outs = {}".format(outs))

Out:
outs = 5

برای تسلط بیشتر، پیشنهاد می‌کنیم تمرینات زیر را انجام دهید:

  1. ورودی‌های متفاوت بدهید و خروجی را مشاهده کنید.
  2. آیا می‌توان ورودی‌های برداری یا ماتریسی تعریف کرد؟ اگر نمی‌شود، شبکه را طوری تغییر دهید که ورودی‌های با ابعاد مختلف دریافت کند.

در ششمین جلسه از آموزش رایگان تنسورفلو به آموزش ساخت شبکه در تنسورفلو پرداختیم. شبکه اولیه ایرادهای زیادی داشت که یکی از آن موارد، یعنی ورودی‌های ثابت را اصلاح کردیم. حال باید ایرادهای دیگر این شبکه را رفع کنیم که تا این جلسه در مورد آنها هیچ توضیحی نداده بودیم. تنسورفلو یک ابزار یادگیری ماشین است و در یادگیری ماشین ما سعی می‌کنیم الگوریتم یا شبکه‌ای طراحی کنیم و آنرا آموزش دهیم تا برای کاربردی خاص مناسب شود. اما، شبکه‌ای که در اینجا طراحی کردیم، هیچ فرآیند آموزشی ندارد، در جلسه بعدی در مورد اضافه کردن فرآیند آموزش و بهینه‌سازی به شبکه‌ها و گراف‌هایمان توضیح خواهیم داد. کم‌کم مباحث آموزشی تخصصی خواهد شد و لازم است که با مفاهیم اولیه شبکه‌های عصبی آشنا باشید، چون در این جلسات هدف ما آموزش تنسورفلو است نه آموزش شبکه‌های عصبی… لطفا نظرات و سوالات خود را در مورد این جلسه کامنت کنید…


کد خبر:
۴۳۰۲۵۷
| تاریخ مخابره:
۱۳۹۷/۴/۲۱
۰۰:۵۹

کمپنا – ایوان پریشیچ به عنوان بهترین بازیکن دیدار کرواسی – انگلیس انتخاب شد.


 


به گزارش کمپنا، پریشیچ که گل تساوی را به انگلیس زد، به عنوان بهترین بازیکن میدان انتخاب شد.


 


کرواسی با برتری ۲ بر یک مقابل انگلیس حریف فرانسه در فینال جام جهانی ۲۰۱۸ شد.




کد خبر:
۴۱۸۵۶۴
| تاریخ مخابره:
۱۳۹۷/۴/۱
۱۸:۱۷

کمپنا – ستاره برزیلی به عنوان بهترین بازیکن دیدار برزیل – کاستاریکا انتخاب شد.


 


به گزارش کمپنا، کوتینیو در دقیقه ۹۱ گل اول را وارد دروازه کاستاریکا کرد تا مقدمات برد ۲ بر صفر این تیم را فراهم کند.


 


نیمار زننده گل دوم این بازی در دقیقه ۹۷ بود.




کد خبر:
۴۱۸۲۴۷
| تاریخ مخابره:
۱۳۹۷/۳/۲۹
۱۵:۳۹

کمپنا – ترکیب رسمی تیم‌های کلمبیا – ژاپن در جام‌جهانی ۲۰۱۸ روسیه مشخص شد.


 


به گزارش کمپنا، کلمبیا امروز به مصاف یکی از تیم‌های مطرح و پرافتخار آسیا خواهد رفت. همانطور که مشاهده می‌کنید کلمبیا با ستاره‌های سرشناس خود از جمله اوسپینا، کوادرادو و فالکائو به مصاف سامورایی آبی می‌رود.


 


این دیدار از ساعت ۱۶:۳۰ آغاز می‌شود.




کد خبر:
۴۱۷۸۳۱
| تاریخ مخابره:
۱۳۹۷/۳/۲۵
۲۰:۵۰

کمپنا – تعداد تماشاگران دیدار ایران و مراکش از سوی فیفا اعلام شد.


 


به گزارش کمپنا، ۶۲ هزار و ۴۵۸ نفر از دیدار ایران و مراکش در ورزشگاه سن پترزبورگ روسیه استقبال کردند.


 


دیدار ایران و مراکش تا دقیقه ۷۰ با تساوی بدون گل در جریان است.


 



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


 


به گزارش کمپنا، سایت رئال اسپورت نوشت: علیرغم اعلام کارلوس کی روش مبنی بر کناره گیری از سمت مربیگری ایران، تیم ملی در بالاترین سطح از تاریخ اخیر خود قرار دارد و به راحتی از قاره آسیا به جام جهانی صعود کرد. اگرچه در مرحله مقدماتی در گروه ایران، کره جنوبی نیز حضور داشت اما هواداران ایرانی خواهند فهمید که در قاره آسیا رقابت بالایی وجود ندارد و به همین دلیل بازی برابر ترکیه یک آزمون خوب برای محک زدن جایگاه ایران به شمار می رود.



تیم ترکیه در دو دهه اخیر در سطح بسیار خوبی نبوده است و در مرحله مقدماتی با تیم هایی چون ایسلند، کرواسی و اوکراین هم گروه بوده است. با حضور چند بازیکن بااستعداد جوان مانند چنگیز اوندر و جاگلار سویونسو، ترکیه‌ای ها امیدوارند تا این تیم مانند دهه ۹۰ و ۲۰۰۰ پرقدرت شود.


 



 


نبرد کلیدی: چنگیز اوندر (ترکیه) – علیرضا جهانبخش (ایران)

دو تن از بازیکنان جوان دو تیم که بازی هیجان انگیزی در سطح اروپا به نمایش گذاشته اند در این بازی حضور خواهند یافت.


 


چنگیز اوندر، ۲۰ ساله و برای تیم رم در لیگ ایتالیا بازی می کند و در این فصل بسیار خوش درخشیده است؛ او در ۲۵ بازی حضور داشت و ۷ گل به ثمر رساند. این بازیکن در تولد ۲۰ سالگی خود با قراردادی به ارزش ۱۲ میلیون پوند به این تیم ایتالیایی پیوست.


 




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



اگر جهانبخش بتواند تورنمنت خوبی را سپری کند، انتظار می‌رود تیم های مطرح اروپایی به دنبال وی باشند.


 


پیش بینی نتیجه بازی: ترکیه ۱ – ۲ ایران

با حضور سردار آزمون و علیرضا جهانبخش در خط حمله تیم ایران، انتظار می‌رود ترکیه با مشکل روبرو شود.


 


کد خبر:
۳۷۶۱۷۹
| تاریخ مخابره:
۱۳۹۷/۳/۵
۱۰:۴۵

کمپنا – روزنامه مارکا چاپ مادرید ترکیب احتمالی رئال مادرید و لیورپول را منتشر کرد.


 


به گزارش کمپنا، شاگردان زیدان و کلوپ از ساعت ۲۳:۱۵ امشب در ورزشگاه المپیک کیف در اوکراین به مصاف هم خواهند رفت تا قهرمان این فصل لیگ قهرمانان اروپا مشخص شود.


 


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


 




کد خبر:
۳۷۴۸۴۴
| تاریخ مخابره:
۱۳۹۷/۲/۱۹
۱۵:۴۳

کمپنا – بارسلونا از ساعت ۲۲:۳۰ امشب میزبان زیردریایی زرد لالیگاست.


 


به گزارش کمپنا، شاگردان والورده که قصد دارند لالیگای این فصل را بدون شکست به پایان ببرند، کار راحتی مقابل ویارئال نخواهند داشت.در تصویر زیر که توسط روزنامه اسپورتیوو منتشر شده، ترکیب احتمالی بارسا و ویارئال مشخص شده است.


 


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


 


قبل از این بازی هم گفته شده است که برخلاف رئال مادرید، اعضای تیم ویارئال به افتخار قهرمانی بارسلونا در لالیگا، در نوکمپ برای آنها تونل افتخار باز خواهند کرد.


 




کد خبر:
۳۷۴۵۰۹
| تاریخ مخابره:
۱۳۹۷/۲/۱۵
۱۶:۱۶

کمپنا – ورزشگاه «موردوویا آره‌نا» محل دیدار ایران و پرتغال در جام جهانی روسیه افتتاح شد.


 


به گزارش کمپنا، مسئولان برگزاری مسابقات جام جهانی ۲۰۱۸ روسیه به طور رسمی ورزشگاه موردوویا آره‌نا، یکی از ۱۲ ورزشگاهی که قرار است از بازی‌های جام بیست‌ ویکم میزبانی کند را افتتاح کردند.



این ورزشگاه ۴۴ هزار و ۴۴۲ نفری که در منطقه موردوویا، مرکز شهر سارانسک واقع شده از چهار بازی مرحله گروهی جام جهانی ۲۰۱۸ میزبانی خواهد کرد. هزینه ساخت این ورزشگاه حدود ۳۰۰ میلیون دلار بوده است.


 



 



کد خبر:
۳۶۴۳۰۸
| تاریخ مخابره:
۱۳۹۷/۲/۱۲
۱۳:۰۱

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


 


به گزارش کمپنا، جدال رفت دو تیم در مرحله نیمه نهایی لیگ قهرمانان اروپا با برتری ۵ بر ۲ مردان کلوپ به پایان رسید اما کسی نمی‌داند که ساعت ۲۳:۱۵ امشب کامبک رمی‌ها برابر بارسا دوباره تکرار خواهد شد یا خیر!


 


ترکیب احتمالی دو تیم:


رم: آلیسون، فازیو، مانولاس، فلورنزی، کلاروف، پیگرینی، ده‌روسی، ناینگولان، شیک، ژکو و الشعراوی.


لیورپول: کاریوس، آرنولد، لورن، فن دایک، روبرتسون، وینالدوم، هندرسون، میلنر، مانه، فیرمینو و محمد صلاح.


 



برچسب ها

تمامی حقوق مطالب برای کمپنا محفوظ است و هرگونه کپی برداری بدون ذکر منبع ممنوع می باشد.