جستجو برای:
  • دوره‌های آموزشی
  • وبلاگ
  • آموزش‌های رایگان
    • آموزش پایتون رایگان
    • آموزش یادگیری ماشین رایگان
    • آموزش یادگیری عمیق رایگان
    • آموزش pytorch رایگان
    • آموزش رایگان matplotlib
    • آموزش گوگل کولب
  • نقشه راه AI
  • کلاس خصوصی
  • همکاری با ما💚
  • حساب کاربری
  • اساتید
  • درباره ما
     
    • 0902-546-9248
    • howsam.mail@gmail.com
    آکادمی هوش مصنوعی هوسم
    • دوره‌های آموزشی
    • آموزش‌های رایگان
      • آموزش پایتون
      • آموزش یادگیری ماشین رایگان
      • آموزش یادگیری عمیق رایگان
      • آموزش pytorch رایگان
      • آموزش گوگل کولب
    • نقشه راه AI
    • وبلاگ
    • درباره ما
      • اساتید
      • پشتیبانی
    0
    ورود / عضویت

    بلاگ

    آکادمی هوش مصنوعی هوسم وبلاگ دسته‌بندی نشده شروع کار با تنسورفلو

    شروع کار با تنسورفلو

    2017/11/07
    ارسال شده توسط هوسم
    دسته‌بندی نشده
    4.81k بازدید

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

    فهرست مطالب نمایش
    1. معنی تنسورفلو
    2. نحوه برنامه‌نویسی با تنسورفلو

    معنی تنسورفلو

    قبل از هرچیز، می‌خواهیم جلسه دوم (شروع کار با تنسورفلو) را با معنی عبارت تنسورفلو (tensorflow) آغاز کنیم. چرا گوگل نام کتابخانه شبکه عصبی و یادگیری عمیق خود را tensorflow گذاشته است؟ قبل از هرچیز بهتر است بگوییم که عبارت tensorflow از دو کلمه tensor و flow تشکیل شده است و برای انتخاب این دو کلمه دلایل کاملا منطقی وجود دارد که در ادامه دلیل انتخاب هردو کلمه توضیح داده خواهد شد.

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

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

     

    علاوه بر شبکه نورون‌ها، داده‌های ورودی هم عامل مهمی بودند که در پاراگراف اول به آن اشاره کردیم. داده‌های ورودی به چه شکلی ظاهر می‌شوند؟ ممکن است یک بعدی باشند (یعنی در قالب یک بردار قرار گیرند، مثل سیگنال صدا) یا ممکن است دوبعدی باشند (یعنی به شکل یک ماتریس نشان داده شوند، مثل تصویر) و حتی ابعاد بالاتری داشته باشند. به همه این بردارها، ماتریس‌ها و غیره تنسور می‌گوییم و tensor در عبارت tensorflow هم به همین دلیل انتخاب شده است. tensor یعنی آرایه‌های چندبعدی، حال ممکن است این آرایه یک بعدی باشد (بردار)، دوبعدی باشد (ماتریس)، سه‌بعدی باشد (مکعب) و یا ابعاد بالاتر. بنابراین به تمامی آرایه‌ها، تنسور گفته می‌شود. همچنین، در تصویر زیر ترکیبی از یک گراف-جریان و تنسور را مشاهده کنید که داده‌های تنسوری در ورودی گراف قرار می‌گیرند و با جریانی به سمت خروجی گراف، خروجی مورد انتظار ما را می‌سازند.

     

    نحوه برنامه‌نویسی با تنسورفلو

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

    بیایید تفاوت تنسورفلو با سایر زبان‌ها را با یک نمونه مثال بررسی کنیم. می‌خواهیم تنسورفلو را با متلب مقایسه کنیم. اگر در متلب دو متغیر زیر را تعریف کنیم و بخواهیم آنها را با هم جمع کرده و در متغیر c بریزیم، به شکل زیر می‌نویسیم:

    a = 3;
    b = 4;
    c = a + b;

    حال اگر بخواهیم نتیجه مقدار c را ببینیم، قطعا با مقدار 7 مواجه خواهیم شد. اما حال اگر بخواهیم همین چند خط کد را در تنسورفلو بنویسیم، نتیجه متفاوت خواهد بود. در کدهای زیر دو ثابت تعریف شده و با هم جمع شده‌اند:

    import tensorflow as tf
    a = tf.constant(3)
    b = tf.constant(4)
    c = a + b

    حال با چاپ خروجی، مقدار c به‌صورت زیر بدست خواهد آمد:

    print(c)
    <tf.Tensor 'add:0' shape=() dtype=int32>

    مشاهده می‌کنید که در این‌حالت اصلا خبری از عدد 7 نیست و بجای آن دیده می‌شود که c را یک ماژول جمع (add) تعریف کرده است. یعنی می‌توانیم بگوییم که c یک شی (object) جمع هست. حال سوال اینجاست که اگر بخواهیم نتیجه جمع را ببینیم باید چه کنیم؟ اصلا راهی وجود دارد؟ بله، راه‌های مختلفی برای مشاهده مقدار این جمع وجود دارد. یکی از این راه‌ها استفاده از دستور tf.Session هست. با استفاده از این دستور ما حالتی را ایجاد می‌کنیم که مقادیر ورودی a و b به ماژول جمع داده شوند و خروجی c چاپ شود. مشابه دستورات زیر، ابتدا یک session ایجاد کرده‌ایم و به این session گفته‌ایم که خروجی را به ما نشان دهد:

    sess = tf.Session()
    sess.run(c)
    7

    دقت کنید، c در اینجا همان گراف ماست و داده‌های ورودی هم a و b هستند. برای اینکه این مقادیر a و b را به c بدهیم باید از session استفاده کنیم. ممکن است کمی برای شما این مساله عجیب به‌نظر برسد، اما باید اضافه کنیم که زبان‌های برنامه‌نویسی دیگری وجود دارند که ساختاری شبیه به تنسورفلو دارند و به ساختار این نوع زبان‌های برنامه‌نویسی Declarative گفته می‌شود. همچنین، لازم است این نکته را هم اضافه کنیم که از یادگرفتن این زبان منصرف نشوید، چون بعد از کمی کار کردن با تنسورفلو با آن ارتباط برقرار می‌کنید و حتی به این نتیجه می‌رسید که این یک ویژگی جالب است که شما ابتدا گراف خود را طراحی کنید و بعد به آن گراف هر ورودی که می‌خواهید، بدهید. در جلسه‌های بعدی با دستور tf.Session بیشتر آشنا خواهید شد. شروع کار با تنسورفلو

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

    اشتراک گذاری:
    برچسب ها: deep learningdeep learning tensorflowlearn tensorflowneural networkstart tensorflowtensorflowwhat is tensorflowآموزش تنسورفلوپایتونتنسورفلوتنسورفلو چیستچرا تنسورفلوشبکه عصبی با تنسورفلوشروع کار با تنسورفلویادگیری عمیق با تنسورفلو

    مطالب زیر را حتما مطالعه کنید

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

    10 دیدگاه

    به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

    • shabnam گفت:
      2023/10/24 در 5:18 ب.ظ

      سلام این کدهایی که نوشتید در محیط pycharm هس؟

      پاسخ
    • فائزه گفت:
      2021/07/12 در 11:41 ق.ظ

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

      پاسخ
    • شین گفت:
      2021/01/21 در 11:03 ق.ظ

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

      پاسخ
      • تیم هوسم گفت:
        2021/01/21 در 11:33 ق.ظ

        سلام
        سپاس 🌹🙏
        خصوصا برای تنسورفلو 1.0 که کمی هم بدقلق بود! 😉

        پاسخ
    • pezhman گفت:
      2020/03/21 در 8:13 ب.ظ

      خیلی ممنونم اگه بخوام از همین ورژن 2 استفاده کنم به جای Session چی باید استفاده کنم؟

      پاسخ
      • HowsamAI گفت:
        2020/03/22 در 10:04 ق.ظ

        تنسورفلو 2.0 به کلی متفاوت از تنسورفلو 1.0 هست. بنابراین، نمی‌توان یک جایگزین برای Session معرفی کرد.

        پاسخ
    • pezhman گفت:
      2020/03/18 در 9:50 ب.ظ

      سلام خسته نباشید چرا تابع tf.Session() رو نمیشناسه؟

      پاسخ
      • HowsamAI گفت:
        2020/03/19 در 3:11 ب.ظ

        سلام
        آیا تنسورفلو رو که نصب کردید، import شد؟ چه نسخه‌ای از تنسورفلو رو نصب کردید؟ با دستور tf.Version می‌تونید نسخه رو چک کنید (البته اگر نمی‌دونید چه نسخه‌ای نصب کردید).

        پاسخ
        • pezhman گفت:
          2020/03/21 در 6:41 ب.ظ

          سلام بله فهمیدم از نسخه 2.1 استفاده میکنم
          اما اون تابع کار نمیکنه

          پاسخ
          • HowsamAI گفت:
            2020/03/21 در 6:47 ب.ظ

            در نسخه تنسورفلو 2.0 تغییرات اساسی بوجود آمد. دستورات tf.Session دیگر در پیش‌فرض تنسورفلو وجود ندارد.
            برای استفاده از Session باید تنسورفلو نسخه 1 نصب کنید.
            البته، اگر اجباری در استفاده از Session نیست، بهتر هست نسخه 2.0 را کار کنید. بازهم باید به این نکته اشاره کنم که فعلا کدهای مقاله‌ها بیشتر مبتنی بر نسخه 1.0 هستند.

            پاسخ

    دیدگاهتان را بنویسید لغو پاسخ

    جستجو برای:
    فهرست مطالب دوره
    • معرفی دوره آموزش تنسورفلو
    • جلسه 2: شروع کار با تنسورفلو
    • جلسه 3: متغیرها در تنسورفلو
    • جلسه 4: آرایه‌ها در تنسورفلو
    • جلسه 5: عملیات جبری در تنسورفلو
    • جلسه 6: ساخت شبکه در تنسورفلو
    دوره‌های جامع هوسم
    • مسابقه Kaggle: تحلیل و پیش‌بینی رفتار با داده‌های چندحسگری سری زمانی
    • پیاده‌سازی ChatGPT از صفر با پایتورچ
    • آموزش OpenCV: از پردازش تا بینایی
    • دیپ کاتالیست: دوره افزایش مهارت
    • پایتون برای هوش مصنوعی 🤖
    • یادگیری ماشین جامع: از مفاهیم تا پیاده‌سازی🔥
    • یادگیری عمیق جامع: از مفاهیم تا پیاده‌سازی
    درباره هوسم

    آکادمی هوش مصنوعی هوسم با آموزش‌های تخصصی در حوزه هوش مصنوعی در خدمت شماست. روی کمک هوسم حساب کنید…

    • گیلان- شهرستان رودسر- شهرک انصاری- کوچه لاله 9
    • 09025469248
    • howsam.mail@gmail.com
    دسترسی سریع
    • صفحه اصلی
    • وبلاگ
    • حساب کاربری
    • سبد خرید
    شبکه‌های اجتماعی

     

    logo-samandehi
    تمامی حقوق برای آکادمی هوسم محفوظ است.
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      ورود
      استفاده از موبایل
      استفاده از آدرس ایمیل
      آیا هنوز عضو نیستید؟ اکنون عضو شوید
      بازنشانی رمز عبور
      استفاده از موبایل
      استفاده از آدرس ایمیل
      عضویت
      استفاده از موبایل
      استفاده از ایمیل
      قبلا عضو شدید؟ اکنون وارد شوید

      ورود

      رمز عبور را فراموش کرده اید؟

      هنوز عضو نشده اید؟ عضویت در سایت