آرایه‌ها در تنسورفلو

در جلسه سوم آموزش تنسورفلو (متغیرها در تنسورفلو) در مورد متغیرها و ثابت‌ها توضیح داده شد و به توضیح دستورات tf.Variable، tf.constant و tf.placeholder پرداختیم. در این جلسه می‌خواهیم در مورد نحوه تعریف آرایه‌ها در تنسورفلو صحبت کنیم. آرایه‌ها در یادگیری ماشین، شبکه‌های عصبی و به‌خصوص بینایی کامپیوتر کاربرد بسیار زیادی دارند، به‌همین دلیل در چهارمین جلسه از آموزش تنسورفلو به نحوه کار با آرایه‌ها در تنسورفلو خواهیم پرداخت. با کمپنا همراه باشید…


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

tf.constant

در مورد این دستور در جلسه سوم توضیح داده شد. برای تعریف آرایه‌های ثابت به‌صورت زیر، آرایه موردنظر به عنوان اولین ورودی در دستور tf.constant قرار می‌گیرد. در زیر یک بردار ورودی ثابت به ابعاد ۴ تعریف شده است. یادآوری می‌کنیم که این بردار چون ثابت است، بعدا قابل تغییر نیست.

a = tf.constant([1, 3, 8, -2])

tf.placeholder

در تعریف این دستور در جلسه سوم، گفتیم که tf.placeholder بخشی از حافظه رم را برای کارهای بعدی رزرو می‌کند. قبلا فقط یک جای خالی برای اسکالر در نظر گرفتیم، اما همان‌طور که در کدهای زیر مشاهده می‌کنید، می‌توانیم ابعاد آرایه مدنظرمان را مشخص و بعدا آنها را پر کنیم. در اولین دستور، یک بردار به‌طول ۵ تعریف شده است. در دومین دستور، یک ماتریس ۱۰×۱۰ و درنهایت در سومین دستور یک آرایه سه‌بعدی به ابعاد ۳×۲۰×۲۰ تعریف شده است.

b = tf.placeholder(tf.float32, 5)
c = tf.placeholder(tf.float32, [10,10])
d = tf.placeholder(tf.int32, [20,20,3])

tf.Variable

برای تعریف متغیرها از دستور tf.Variable استفاده می‌کنیم. نحوه تعریف آرایه در tf.Variable بسیار شبیه tf.constant است و همان‌طور که در کدهای زیر مشاهده می‌کنید، آرایه‌های با ابعاد متفاوتی تعریف شده است. متغیر e، برداری به طول ۳ و متغیر f برداری به ابعاد ۳×۲ است.

e = tf.Variable([5, 1, -1])
f = tf.Variable([[1, 1, 1], [2, 2, 2]])

اما ممکن است شما نیاز به مقداردهی آرایه‌های با ابعاد بزرگ داشته باشید. مثلا می‌خواهید یک ماتریس به ابعاد ۲۰۰×۲۰۰ با مقادیر تماما صفر یا تماما یک تعریف کنید؛ یا ممکن است نیاز به آرایه‌های با مقادیر رندوم داشته باشید. در این حالت‌ها هم در تنسورفلو دستوراتی در نظر گرفته شده که در ادامه آنها را معرفی می‌کنیم.

tf.zeros

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

zero_mat = tf.zeros([10,10])
sess = tf.Session()
sess.run(zero_mat)
array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
 [ ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫],
 [ ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫],
 [ ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫],
 [ ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫],
 [ ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫],
 [ ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫],
 [ ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫],
 [ ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫],
 [ ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫, ۰٫]], dtype=float32)

tf.ones

با استفاده از این دستور، آرایه‌ای با ابعاد دلخواه شامل مقادیر ۱ می‌توانیم تعریف کنیم. در زیر یک تنسور سه‌بعدی به ابعاد ۳×۴×۵ تعریف شده است: 

ones_mat= tf.ones([5,4,3])
sess.run(ones_mat)
array([[[ 1., 1., 1.],
 [ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫]],
[[ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫]],
[[ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫]],
[[ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫]],
[[ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫],
 [ ۱٫, ۱٫, ۱٫]]], dtype=float32)

tf.range

اگر یک بازه از اعداد با گام‌های ثابت می‌خواهید، می‌توانید از این دستور استفاده کنید. همان‌طور که در مثال زیر آورده شده است، از تنسورفلو می‌خواهیم که بین بازه [۱۶ ۶] یک مجموعه اعداد با فاصله ۳ به ما بدهد. خروجی یک بردار است که در زیر نشان داده شده است: 

g = tf.range(5,16,3)
sess.run(g)
array([ 5, 8, 11, 14])

tf.random_uniform

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

h = tf.random_normal([5])
sess.run(h)
array([ 0.97898144, 0.82024717, -0.80006266, 0.27656975, 0.43732926], dtype=float32)

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

آينده

آينده

مثال اول: اگر شما یک کشاورز باشید و برای آبیاری زمین خود ناگزیر شوید از زمین همسایه عبور کنید شما در زمین همسایه حق ارتفاق دارید در این مثال حق ارتفاق شما عبارت است از حق عبور؛ یعنی شما به موجب این حق می‫توانید از زمین همسایه عبور کنید. مثال دوم را در زندگی شهری و آپارتمان نشینی بیان می‫کنیم؛ فرض کنید دو ساختمان در کنار هم هستند که راه عبور یکی از آنها از محوطه‌ی حیاط ساختمان کناری است به عبارتی پله‫های ساختمان در محوطه‌ی ساختمان کناری باشد این هم مثالی از حق ارتفاق است. حق داشتن مجرای آب در ملک دیگری یا داشتن درب در ملک دیگری نیز از سایر مصادیق حق ارتفاق است؛ اکنون که با ذکر این مثال‌ها با مفهوم حق ارتفاق آشنا شدید به توضیح این حق می‫پردازیم.‬‬‬‬‬‬‬‬‬

از مثال‫های مذکور به خوبی آشکار است که حق ارتفاق حقی است وابسته به وجود ملک و به این سبب در تعریف حق ارتفاق باید بگوییم حقی است که برای اشخاص به تبع مالکیت ایشان در املاکِ واجدِ حقِ ارتفاق در ملک دیگری ایجاد می‌شود. ‬‬بنابراین از ویژگی‫های بارز حق ارتفاق که وجه ممیز این حق از سایر حقوق است و از تعریف بالا نیز برمی‌آید این است که حق ارتفاق حقی قائم به ملک است نه به شخص. به این معنی که به تبع ملک وجود دارد و وابسته به شخص نیست. بنابراین اگر شخص الف مالک ملکی باشد که نسبت به ملک مجاور حق ارتفاقی مثلا از نوع حق عبور و مرور دارد و شخص الف این ملک را به شخص ب بفروشد حق ارتفاق به جهت تغییر مالک از بین نمی‫رود و ملک مذکور همچنان نسبت به ملک مجاور حق عبور را دارد. ‬‬‬‬‬‬

حق ارتفاق کمپنا ایجاد می‌شود؟

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

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

موضوع قابل توجه اینکه به موجب قانون رعایت این حق در درجه‌ای از اهمیت بوده است که قانون‌گذار در سال ۱۳۱۱ بر لزوم درج و ثبت حقوق ارتفاقی املاک نیز تصریح نموده است؛ ممکن است شنیده باشید که شخص برای حق ارتفاق سند دارد طبق قوانین ثبت زمانی که در سال ۱۳۱۰ ثبت املاک اجباری شد یعنی مالکان به موجب قانون مکلف شدند برای املاک خود سند مالکیت بگیرند در پروسه و تشریفات صدور سند اشخاصی که در ملکی حق ارتفاق داشتند مکلف بودند در صورت جلسه تحدید حدود ملک مربوطه این حق را ذکر کنند و این حق ارتفاق در سند مالکیت قید می‫شود. همچنان که مطابق آیین‌نامه‌ی اجرای قانون ثبت علاوه بر تصریح به درج شماره‌‌ی ملک‌، تاریخ‌ ثبت‌ ملک‌ در دفتر املاک‌، نام و نام‌ خانوادگی‌ و شماره‌‌ی شناسنامه‌ و محل‌ صدور آن‌ و محل‌ اقامت‌ و تابعیت‌ مالک‌، نوع‌ و مشخصات‌ ملک‌ و محل‌ وقوع‌ و اجزا و متعلقات‌ آن‌، حدود ملک‌، بهای‌ ملک‌، در بند ۷ از ماده‌ی ۱۰۳ آیین‌نامه‌ی مزبور صراحتا بر درج کلیه‌ی حقوقی ارتفاقی در دفتر املاک به شرح ذیل تصریح گردیده است:

«حقوق عینیه‌ که‌ اشخاص‌ در آن‌ ملک‌ دارند با اسامی‌ صاحبان‌ حقوق‌ و همچنین‌ حقوق‌ ارتفاقیه‌ که‌ برای‌ ملک‌ مورد ثبت‌ در املاک‌ مجاور و یا برای املاک‌ مجاور در ملک‌ مورد ثبت‌ موجود است‌ (حقوق ارتفاقی باید در دفتر ثبت املاک ثبت شود و سند مالکیت برای آن منظور شود)»‬‬‬

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

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

تفاوت حق ارتفاق و حق انتفاع چیست؟

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

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

تهیه شده در

چطور دات کام

 


Rating: 4.7. From 3 votes.

Please wait…

Print Friendly, PDF & Email

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

قبل از اینکه به بررسی نحوه ی ایجاد اسلایدها بپردازیم، در ابتدا قصد داریم تا نقش و کارایی انواع placeholder را در طراحی اسلایدها مورد مطالعه قرار دهیم. در نمای کلی یک placeholder یک نوع قاب پیش فرض برای درج اشیایی نظیر متن، نمودار، جدول و یا smart arts بوده که ابعاد و مکان قرار گیری این اشیا را کنترل می کند. به زبان ساده تر، یکی از روش های درج objectهای مختلف، استفاده از placeholder مرتبط با آن object می باشد. برای مثال هنگامی که شما یک سند جدید می کنید، به طور پیش فرض دو placeholder متنی بر روی تنها اسلاید سند نمایش داده شده که در این حالت شما با کلیک بر روی هر کدام از این placeholder ها می توانید به درج متن مورد نیاز خود بپردازید.
Screenshot (37)

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

برای بررسی این موضوع شما می بایست از گزینه های سربرگHome و گروه Slides استفاده کنید.
Screenshot (38)
بدین منظور روی گزینه ی New Slide کلیک کنید.
Screenshot (39)
با این کار منوی Office Theme باز شده و فهرستی از الگوهای پیش فرض را برای ایجاد یک اسلاید جدید در اختیار شما قرار می دهد. برای مثال با انتخاب گزینه ی Content with caption یک اسلاید جدید متناسب با الگوی Content with caption ایجاد می شود.
Screenshot (40)
همچنین با استفاده از آیکون New Slide می توانید یک اسلاید جدید متناسب با الگوی آخرین اسلاید درج شده ایجاد می شود. برای تغییر طرح بندی یک اسلاید نیز می توانید روی گزینه ی Layout کلیک کنید و الگوی مورد نظرتان را انتخاب نمایید.

Screenshot (41)
برای بازگشت به حالت قبلی اسلاید، می توانید از گزینه ی Reset استفاده نمایید.

Screenshot (42)

همانطور که گفته شد، شما با انتخاب یک الگو برای placeholder مورد نظرتان می توانید انواع object ها را روی آن قرار دهید.

Screenshot (43)

برای مثال ما با استفاده از الگوی پیش فرض Title and Content اسلاید جاری را طرح بندی کرده و سپس عبارت کمپنا دات آی آر را به همراه تصویر لوگوی آن طبق مراحل زیر درج کرده ایم.

Screenshot (45)

در واقع ما در اینجا از دو placeholder متنی و گرافیکی استفاده کرده ایم.

Screenshot (46)

در نمای کلی شما برای انتخاب یک object می بایست نشانگر موس را روی آن ببرید تا نشانگر موس برای objectهای متنی به شکل یک مکان نمای متنی و برای اشکال و نمودارهای گرافیکی، چهار پیکان جهت نما در کنار نشانگر دیده شود. برای انتخاب object مورد نظر کافیست یکبار کلیک کنید. با این کار یک کادر انتخاب یا Select Inbox در اطراف آن مانند تصویر بالا نمایش داده می شود.
در صورتی که قصد دارید چندین object را به صورت همزمان در حالت انتخاب قرار دهید، می بایست با پایین نگه داشتن کلید Shift روی object های مورد نظر خود کلیک کنید.

برای تغییر اندازه هر object می توان نشانگر موس را روی هر یک از هشت دستگیره ی کادر selecting box ببرید تا نشانگر به شکل یک پیکان دو طرفه تبدیل شود. سپس با کلیک و درگ موس می توانید ابعاد object انتخابی را تغییر دهید. به خاطر داشته باشید که در این حالت با پایین نگه داشتن کلید shift
و درگ موس، موجب می شود تا تغییر اندازه فقط در راستای دستگیره ی انتخابی صورت پذیرفته ،همچنین پایین نگه داشتن کلید Ctrl در هنگام درگ موس موجب می شود تا تغییر اندازه object در یک جهت، بر روی جهت مقابل آن نیز صورت پذیرد.
شما با پایین نگه داشتن همزمان Ctrl+Shift می توانید تناسب اولیه ی object را در هنگام تغییر اندازه ی آن حفظ کنید. همچنین برای چرخاندن object انتخابی نیز، کافیست نشانگر موس را بر روی دستگیره ی سبز رنگ آن ببرید تا نشانگر تغییر شکل دهد. حال می توان با کلیک و درگ موس object انتخابی را در جهت مورد نظر چرخاند.

Screenshot (47)

برای حذف یک object نیز کافیست با انتخاب آن کلید Delete را از روی صفحه کلید بفشارید.

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


 برای مطلع شدن از پست های بعدی در خبرنامه سایت عضو شوید!




شبکه عصبی عمیق VGG

مقدمه

شبکه عصبی عمیق VGG یا به اصطلاح لاتین VGG Deep Neural Network یک شبکه عصبی کانولوشنی است که توسط محققانی بنام K. Simonyan و A. Zisserman از دانشگاه آکسفورد در مقاله “Very Deep Convolutional Networks for Large-Scale Image Recognition“ پیشنهاد شد. این شبکه جزو اولین شبکه‌های عصبی کانولوشنی است که توانست دقت بالایی در مسابقه معروف ImageNet بدست بیاورد. پایگاه داده ImageNet شامل حدود ۱۶ میلیون تصویر در ۱۰۰۰ کلاس مختلف است و مسابقات آن هرساله برگزار می‌شود و تبدیل به جام‌جهانی بینایی کامپیوتر شده است!

imagenet

باتوجه به پیشرفت‌های اخیرِ شبکه‌های عصبی عمیق، شاید دیگر نتوان شبکه VGG را یک شبکه مدرن دانست، اما به دلیل ساختار خوب، سادگی، تعداد لایه‌های نه‌چندان زیاد هنوز در بسیاری از زمینه‌های بینایی کامپیوتر از این شبکه استفاده می‌شود. بعضی از محققان ممکن است شبکه از پیش آموزش دیده VGG را برای کاربرد مدنظر خود بازتنظیم (Fine Tune) کنند و یا اینکه تغییراتی در معماری این شبکه محبوب ایجاد نمایند و از ابتدا (Scratch) آن را آموزش دهند. درهرصورت، چه برای افراد حرفه‌ای در زمینه شبکه‌های عصبی و یادگیری ماشین و چه برای افراد تازه‌وارد، شناخت معماری شبکه VGG بسیار کارآمد خواهد بود. در ادامه در مورد معماری شبکه عصبی عمیق VGG توضیح خواهیم داد. 

معماری شبکه عصبی عمیق VGG 16

شبکه VGG در دو معماری مختلف با عنوان‌های VGG 16 و VGG 19 ارائه شده است. ابتدا شبکه VGG 16 پیشنهاد شد و بعدها با تغییراتی جزئی در شبکه VGG 16، شبکه VGG 19 مطرح گردید. شبکه VGG 16 همان‌طور که از نامش می‌توان حدس زد، از ۱۶ لایه تشکیل شده که در شکل زیر نشان داده شده است. شبکه VGG 16، شامل دو لایه کانولوشنی با ۶۴ فیلتر ۳×۳ هست که پشت سر هم قرار گرفته‌اند. سپس، یک لایه ماکس‌پولینگ ۲×۲ با پرش (Stride) به اندازه ۲ قرار گرفته است. این لایه ماکس‌پولینگ علاوه بر نمونه‌برداری، وظیفه کاهش بعد ویژگی‌ها به نصف را هم دارد. در ادامه، دو لایه کانولوشنی دیگر با ۱۲۸ فیلتر ۳×۳ و یک لایه ماکس‌پولینگ ۲×۲ و پرش ۲ قرار گرفته‌اند. به‌طور مشابه، سه لایه کانولوشنی با ۲۵۶ فیلتر ۳×۳ و یک لایه ماکس‌پولینگ ۲×۲ با پرش ۲ قرار گرفته‌اند. ۳ لایه کانولوشنی با ۵۱۲ فیلتر ۳×۳ و یک لایه ماکس‌پولینگ ادامه این شبکه هست که البته دو بار تکرار می‌شود. درنهایت، ویژگی‌ها تبدیل به یک بردار ویژگی می‌شوند تا در اختیار لایه‌های نورونی یا تمام‌اتصال یا Fully Connected قرار گیرند. دو لایه نورونی به ابعاد ۴۰۹۶ پشت سر هم قرار گرفته‌اند. درنهایت، یک لایه نورونی به ابعاد ۱۰۰۰ که متناظر با تعداد کلاس‌های کاربرد ما هست، در نظر گرفته شده است. باتوجه به اینکه پایگاه داده ImageNet شامل ۱۰۰۰ کلاس هست، در اینجا هم لایه خروجی شامل ۱۰۰۰ نورون است. در تمامی لایه‌های کانولوشنی و لایه‌های نورونی از تابع فعال‌ساز یا Activation Function بنام RELU استفاده شده است. 

vgg16

به‌صورت خلاصه، معماری شبکه VGG 16 شامل لایه‌های زیر هست:

  1. لایه کانولوشنی با ۶۴ فیلتر ۳×۳ و تابع RELU
  2. لایه کانولوشنی با ۶۴ فیلتر ۳×۳ و تابع RELU
  3. لایه ماکس پولینگ ۲×۲ با پرش ۲ در جهت‌های افقی و عمودی
  4. لایه کانولوشنی با ۱۲۸ فیلتر ۳×۳ و تابع RELU
  5. لایه کانولوشنی با ۱۲۸ فیلتر ۳×۳ و تابع RELU
  6. لایه ماکس پولینگ ۲×۲ با پرش ۲ در جهت‌های افقی و عمودی
  7. لایه کانولوشنی با ۲۵۶ فیلتر ۳×۳ و تابع RELU
  8. لایه کانولوشنی با ۲۵۶ فیلتر ۳×۳ و تابع RELU
  9. لایه کانولوشنی با ۲۵۶ فیلتر ۳×۳ و تابع RELU
  10. لایه ماکس پولینگ ۲×۲ با پرش ۲ در جهت‌های افقی و عمودی
  11. لایه کانولوشنی با ۵۱۲ فیلتر ۳×۳ و تابع RELU
  12. لایه کانولوشنی با ۵۱۲ فیلتر ۳×۳ و تابع RELU
  13. لایه کانولوشنی با ۵۱۲ فیلتر ۳×۳ و تابع RELU
  14. لایه ماکس پولینگ ۲×۲ با پرش ۲ در جهت‌های افقی و عمودی
  15. لایه کانولوشنی با ۵۱۲ فیلتر ۳×۳ و تابع RELU
  16. لایه کانولوشنی با ۵۱۲ فیلتر ۳×۳ و تابع RELU
  17. لایه کانولوشنی با ۵۱۲ فیلتر ۳×۳ و تابع RELU
  18. لایه ماکس پولینگ ۲×۲ با پرش ۲ در جهت‌های افقی و عمودی
  19. لایه فولی‌کانکت به ابعاد ۴۰۹۶
  20. لایه فولی‌کانکت به ابعاد ۴۰۹۶
  21. لایه فولی‌کانکت به ابعاد ۱۰۰۰ (لایه خروجی)

توجه: اگرچه معماری شبکه در قالب ۲۱ مرحله در بالا گفته شد، اما منظور از ۱۶ در VGG 16، ۱۶ لایه بدون نظر گرفتن لایه‌های ماکس‌پولینگ است. 


همان‌طور که گفته شد، شما می‌توانید در این شبکه تغییراتی به‌وجود بیاورید، به عنوان مثال، تعدادی از لایه‌های آن را کم کنید و یا تعدادی لایه به آن بیفزایید. شبکه عصبی عمیق VGG 16 بسیار مورد توجه محققان و دانشجویان قرار گرفته و در زمینه‌های مختلفی از بینایی کامپیوتر از آن استفاده شده است. اما در مورد شبکه VGG 19 توضیحی ندادیم، چون تنها سه لایه نسبت به لایه VGG 16 بیشتر دارد. پیشنهاد کمپنا به شما این است که اگر معماری شبکه VGG 16 را متوجه شدید، با جستجو در منابع لاتین ببینید سه لایه اضافه در VGG 19 چه ویژگی‌هایی دارد و در کدام‌یک از قسمت‌های VGG 16 قرار می‌گیرد. 



ازدواج و کار و دوست داشتن

عایق بندی اتاق های زیر شیروانی:

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

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

عایق بندی سقف اتاق های شیروانی:

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

عایق بندی سقف های مسطح:

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

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

منبع

energysavingtrust


Rating: 3.9. From 7 votes.

Please wait…

Print Friendly, PDF & Email

در این مطلب از سری مطالب دوره آموزشی استاد وردپرس شما را با بخش ابزارک ها و فهرست های وردپرس آشنا می کنیم.

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

استاد وردپرس کمپنا

زیر منوی فهرست ها هم که در همین آموزش به توضیح درباره آن خواهیم پرداخت نیز در همین قسمت قرار  دارد که می توانید در تصویر بالا آن ها را مشاهده کنید. با زدن بر روی زیر منوی ابزارک ها با صفحه ای مشابه صفحه زیر روبرو می شوید.

استاد وردپرس کمپنا

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

استاد وردپرس کمپنا

مثلا در قسمت نام ابزارک می توانید نامی برای آن ابزارک انتخاب کنید. این نام در بالای ابزارک در وب سایت شما نمایش داده می شود. به تصویر زیر نگاه کنید.

استاد وردپرس کمپنا

در تصویر زیر می بینید که نامی که برای ابزارک انتخاب کردیم در وب سایت به چه صورت به نمایش گذاشته می شود.

استاد وردپرس کمپنا

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

استاد وردپرس کمپنا

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

استاد وردپرس کمپنا

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

استاد وردپرس کمپنا

در تصویر زیر می بینید که ما چینشی برای فهرست خود قرار دادیم که دارای تو رفتگی هم می باشد. تو رفتگی در این فهرست ها به معنای زیر منو بودن می باشد. در این مثال به این معناست که برگه نمونه زیر منوی خانه می باشد. به تصویر زیر نگاه کنید.

استاد وردپرس کمپنا

از شما سپاسگذاریم که وقت خود را صرف مطالعه این آموزش نموده اید.

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


 برای مطلع شدن از پست های بعدی در خبرنامه سایت عضو شوید!


بیگ بنگ: خوشه ستاره ای معروف پروین بخشی از ابرِ گازی و غباری را به آرامی از بین می برد. خوشه پروین درخشان ترین خوشه ستاره ای باز در آسمان زمین است و تقریبأ از هر منطقۀ شمالی با چشم غیرمسلح دیده می شود.

به نظر می رسد این ابرِ جوان غباری که از میان خوشه پروین عبور می کند بخشی از کمربند گولد (حلقه غیرعادی محل تشکیل ستارۀ جوان در اطراف خورشید ما در کهکشان راه شیری محلی) می باشد. با گذشت ۱۰۰ هزار سال، بخشی از کمربند گولد تصادفأ از میان خوشه پروینِ قدیمی تر در حال عبور است و واکنش قوی را بین ستارگان و گرد و غبار ایجاد کرده است. فشار ناشی از نور ستارگان، غبار موجود در اطراف سحابی انعکاسی آبی رنگ را دفع می کند و ذرات گرد و غبار کوچکتر با شدت بیشتری دفع می شوند. نتیجۀ کوتاه مدت، این است که بخش هایی از ابر غباری به شکل رشته و خوشه درآمده اند. در این عکس برجستۀ عمقی همچنین دنباله دار پَن‌استارز C/2015 ER61 (PanSTARRS) در سمت چپ پایین تصویر دیده می شود.

سایت علمی بیگ بنگ / منبع: apod

image_pdfimage_print



آموزش صفر تا صد پایتون

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


مقدمه

سادگی پایتون و آسان بودن برنامه‌نویسی با آن را می‌توان در تعریف پایتون از زبان خالق آن، آقای Guido van Rossum فهمید: 

پایتون یک زبان برنامه‌نویسی سطح بالاست و فلسفه اصلی طراحی آن قابلیت خوانایی بالا و دستورات و قوانینی است که برنامه‌نویسان مفاهیم مدنظر خود را با کمترین تعداد خطوط پیاده کنند. 

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


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