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

    بلاگ

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

    آموزش تنسورفلو

    2017/11/02
    ارسال شده توسط هوسم
    یادگیری عمیق
    5.09k بازدید

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

    فهرست مطالب نمایش
    1. تنسورفلو (tensorflow) چیست ؟
    2. گذر از TensorFlow I به TensorFlow II
    2.1. این همه مشقت برای نوشتن یک جمله؟ چرا؟!!
    2.2. Eager execution یعنی چه؟
    2.3. تغییرات دیگر در TensorFlow
    2.4. چه شد که تنسورفلو انقدر تغییر کرد؟
    3. چرا تنسورفلو؟
    4. فراخوانی تنسورفلو

    تنسورفلو (tensorflow) چیست ؟

    تنسورفلو (tensorflow) یک کتابخانه رایگان و متن‌باز پایتونی برای یادگیری عمیق است. این کتابخانه در سال 2015 توسط شرکت گوگل منتشر شد و تا امروز یکی از شناخته‌شده‌ترین فریمورک‌های یادگیری عمیق است. تنسورفلو مبتنی بر زبان‌های پایتون، C++، جاوا و R است، اما بیشتر محققان از API پایتون استفاده می‌کنند.

    گذر از TensorFlow I به TensorFlow II

    در این بخش از آموزش تنسورفلو ، تاریخچه کوتاهی از TensorFlow ارائه شده است. اگر می‌خواهید بدانید که این فریمورک دستخوش چه تغییراتی شده و چرا این تغییرات انجام شده، این بخش را بخوانید. در غیر این صورت می‌توانید به بخش بعدی بروید.

    در سال 2019 گوگل یک آپدیت اساسی برای تنسورفلو ارائه داد و Tensorflow II را منتشر کرد. تغییرات مهمی در این آپدیت انجام شد. یک تغییر مهم، استفاده از eager execution بود. کار با تنسورفلو 1 شبیه جنگ بود! یعنی، بعد از یک ساعت کار کردن با تنسورفلو 1، احتمالا یا لپتاپ را می‌شکستید یا اینکه یک بلایی سرخودتان می‌آوردید! شاید فکر کنید اغراق می‌کنم. اما بیایید یک مثال ساده ببینیم! حتما می‌دانید که در پایتون چطور باید دو عدد را باهم جمع کنیم و در یک متغیر جدید بریزیم و خروجی آن را نمایش دهیم. یعنی کد زیر:

    a = 1
    b = 2
    print(c)
    3

    حالا بیایید این کار با تنسورفلو 1 انجام دهیم:

    import tensorflow as tf
    a = tf.constant(3)
    b = tf.constant(4)
    c = a + b
    print(c)
    <tf.Tensor 'add:0' shape=() dtype=int32>

    خروجی عددی نداریم! خروجی به شکل سمبلیک است. بسیار خب، چطور خروجی را باید دید؟ اینطوری:

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

    برای خیلی از مبتدی‌ها، دنیای تنسورفلو 1 قابل درک نیست! در واقع، اگر بخواهم یک توضیح فنی بدهم، در تنسورفلو 1، ابتدا باید گراف شبکه ساخته شده و سپس گراف ساخته شده اجرا شود. در واقع تنسورفلو 1 از static computational graph استفاده می‌کند. در کد اول ابتدا تنسورفلو را ایمپورت کردیم و بعد یک گراف شامل دو constant ساختیم. در کد دوم با استفاده از Session و run گراف را اجرا کردیم.

    این در حالی است که برای نوشتن همین عملیات در پایتورچ که از dynamic computational graph استفاده می‌کند کافی است بنویسیم:

    import torch
    a = torch.tensor(3)
    b = torch.tensor(4)
    c = a + b
    print(c)
    tf.Tensor(7, shape=(), dtype=int32)

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

    این همه مشقت برای نوشتن یک جمله؟ چرا؟!!

    استفاده از static computational graph مزایایی مثل افزایش سرعت دارد. گرافی که ساخته‌ایم بدون اتلاف وقت می‌تواند چندین بار اجرا شود، بدون اینکه نیاز باشد مجدد تعریف شود. همین امر باعث افزایش سرعت می‌شود. اما همان طور که در بخش قبل مشاهده کردید، پیچیدگی در حالت استاتیک بیشتر از حالت داینامیک است و این پیچیدگی با پیچیده شدن شبکه‌ها، بیشتر هم می‌شود! همچنین دیباگ کردن در حالت استاتیک بسیار سخت می‌شود.

    Eager execution یعنی چه؟

    گوگل دید که مجروح جنگی زیاد شده و کلا استقبال از تنسورفلو 1 کم شده، در نهایت تسلیم کاربرانش شد و تصمیم گرفت با استفاده از eager execution، یک تحول اساسی در این فریمورک ایجاد کند. Eager execution در تنسورفلو 2، این امکان را فراهم می‌کند که کدها به صورت داینامیک اجرا شوند و دیگر خبری از Session و run نباشد. یعنی اینطوری:

    import tensorflow as tf
    a = tf.constant(3)
    b = tf.constant(4)
    c = a + b
    print(c)
    tf.Tensor(7, shape=(), dtype=int32)

    تغییرات دیگر در TensorFlow

    مشکل تنسورفلو 1، فقط همین مورد نبود! بلکه مشکلات بزرگ دیگری هم داشت. مثلا، برای یک دستور لایه کانولوشنی، یک عالمه ماژول داشت. مثلا فکر کنید 5 دستور مختلف با کارایی تقریبا یکسان که کاربر در استفاده از آنها گیج میشد. از همه بدتر، هرکسی به یک شکل کدها را می‌نوشت! یکی با لایه کانولوشنی ماژول A یکی با ماژول B و …

    تنسورفلو 1 در لوگو هم یک اشتباه ریز داشت! 😁 یعنی اگر به پرسپکتیو لوگوی زیر نگاه کنید، می‌بینید که حرف T درست در نمی‌آید.

    لوگو تنسورفلو
    شکل 1: لوگوی قدیمی تنسورفلو

    چه شد که تنسورفلو انقدر تغییر کرد؟

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

    شکل 2: توئیت Andrej Karpathy بعد از مهاجرت به پایتورچ

    دیگه ببینید تنسورفلو 1 چه بلایی سر ملت آورده! ما هم دوره دیپ لرنینگ را اوایل با تنسورفلو 1 آموزش میدادیم و همگی در عذاب بودیم. بعد پایتورچ آمد و …
    البته، ویژگی‌های خوب تنسورفلو 1 را نباید فراموش کنیم. تنسورفلو 1 ملت را از دست Caffe خلاص کرد. حالا تصور کنید Caffe دیگر چه بوده! همچنین، امکانات بسیار بسیار خوبی برای توسعه پروژه های تجاری در اختیار افراد قرار میداد. مثلا ما تجربه استفاده از مدل‌های تنسورفلو در ++c برای کار تجاری را داشتیم.

    چرا تنسورفلو؟

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

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

    فراخوانی تنسورفلو

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

    import tensorflow as tf
    

    با استفاده از اتریبیوت version می‌توانید ورژن این کتابخانه را چک کنید:

    tf.__version__
    2.12.0

    ادامه دارد…

    اشتراک گذاری:

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

    LLM Research یا LLM Engineering؟ راهنمای یادگیری مدل‌های زبانی بزرگ
    در چند سال اخیر، اصطلاح LLM یا Large Language Model به یکی از پرتکرارترین واژه‌ها...
    یادگیری انتقالی
    یادگیری انتقالی یا Transfer Learning به معنای استفاده از یک مدل از پیش آموزش‌دیده در...
    شبکه VGG
    شبکه VGG یکی از معماری‌های موفق و معروف در حوزه یادگیری عمیق است که در...
    مهندسی پرامپت
    امروزه، با ظهور ChatGPT و سایر ابزارهای هوش مصنوعی، طیف گسترده‌ای از افراد، از کاربران...
    مدل nanoGPT
    در سال ۲۰۱۹، OpenAI مدل GPT-2 را معرفی کرد. OpenAI، برخلاف مدل‌های بعدی (GPT-3 و...
    شگفت‌انگیزترین ایده هوش مصنوعی از نظر Andrej Karpathy
    هوش مصنوعی به سرعت در حال پیشرفت هست. به‌گونه‌ای که باید زمان و انرژی زیادی...

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

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

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

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

     

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

      ورود

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

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