Tensorflow(@CVision)
15.3K subscribers
1.29K photos
310 videos
81 files
2.53K links
اخبار حوزه یادگیری عمیق و هوش مصنوعی
مقالات و یافته های جدید یادگیری عمیق
بینایی ماشین و پردازش تصویر

TensorFlow, Keras, Deep Learning, Computer Vision

سایت:
http://class.vision

👨‍💻👩‍💻پشتیبان دوره ها:
@classvision_support

لینک گروه:
@tf2keras
Download Telegram
Forwarded from Tensorflow(@CVision) (Alireza Akhavan)
#آموزش
Imperative (or Model Subclassing) APIs

این سبک API در ابتدا توسط فریم ورک Chainer در سال 2015 معرفی شد و در سال 2017 چندین چارچوب دیگر آن را به کار گرفت (از جمله موارد ذکر شده در اینجا). در چارچوب Keras، شوله، توسعه دهنده کراس آن را "API Subclassing Model" می نامد.

بعضی از افراد می گویند "شما نمیتوانید X در چارچوب Y را اجرا کنید، شما نیاز به چارچوب Z دارید".
حتی قبلا هم که همه فریم ورک ها یک api style خاص را پشتیبانی می کردند حرف درستی نبود، اما اکنون که همه این چارچوب ها این api style را پشتیبانی میکنند این ادعا خیلی مسخره تر است! در این استایل شما می توانید کدی از یک کتابخانه را به یه کتابخانه دیگر کپی کرده و با تغییرات جزئی استفاده کنید.

این ادعا هم از همان دسته از حرفهای بی پایه و اساس است که مردم ادعا می کنند "اگر شما این مدل را در چارچوب X اجرا کنید بهتر است" - خروجی یک الگوریتم به زبان شما در آن پیاده سازی ربطی ندارد!!

هوشمنداته ترین روش این است که ترکیب پارادایم های imperative و symbolic را استفاده کنید، همان روشی که در TF.Keras و Gluon انجام می شود.
شما در اغلب موارد مزایای اصلی گراف های کامپایل شده را حفظ می کنید و در عین حال وقتی به انعطاف پذیری گراف پویا نیاز دارید هم دسترسی خواهید داشت.

توصیه میکنم style api که اشاره کردم را در توئیت Francois Chollet

https://xn--r1a.website/cvision/953

و مقایسه بین تعریف کردن symbolic مدل با Imperative api در تنسرفلو 2 را در اینجا ببینید.
https://xn--r1a.website/cvision/954

#tensorflow #keras #symbolic #imperative
Tensorflow(@CVision)
#آموزش Imperative (or Model Subclassing) APIs این سبک API در ابتدا توسط فریم ورک Chainer در سال 2015 معرفی شد و در سال 2017 چندین چارچوب دیگر آن را به کار گرفت (از جمله موارد ذکر شده در اینجا). در چارچوب Keras، شوله، توسعه دهنده کراس آن را "API Subclassing…
قسمت 1
جهت یاداوری این پست را به خاطر بیاورید:
https://xn--r1a.website/cvision/955

و توئیت مرتبط اخیر chollet در مورد سینتکس chainer که الان این سینتکس در keras و pytorch موجود است.
chollet ادعا کرده که pytorch از chainer پروژشو در ابتدا fork کرده.
قسمت 2
اعتراض اکانتpyTorch به ادعای Chollet و پاسخ Chollet در رابطه با مطلب قبلی
قسمت 3
و دعوا شدید میشه و Yann Lecun مدیر هوش مصنوعی فیس بوک (و قاعدتا pytorch) هم میاد تو دعوا :)
Tensorflow(@CVision)
قسمت 3 و دعوا شدید میشه و Yann Lecun مدیر هوش مصنوعی فیس بوک (و قاعدتا pytorch) هم میاد تو دعوا :)
یان لکان جاهایی که صحبت از ایده گرفتن keras از Torch هست از لفظ copy استفاده کرده. اما جاهایی که بحث ایده گرفتن pytorch از یه فریم ورک دیگست از لفظ inspired و الهام استفاده کرده.🙄
#مجموعه_داده

Tiny ImageNet Visual Recognition Challenge
+ leaderboard
Tiny Imagenet has 200 classes. Each class has 500 training images, 50 validation images, and 50 test images.

https://tiny-imagenet.herokuapp.com/
#خبر
تنسرفلو 1.14 آخرین نسخه از که قبل TensorFlow 2.0 منتشر شد:

https://github.com/tensorflow/tensorflow/releases/tag/v1.14.0-rc0?linkId=68391010

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

A synthetic data generator for text recognition with latin, arabic and persian text support

https://github.com/amirmgh1375/TextRecognitionDataGenerator

#آموزش #سورس_کد #دیتاست
#synthetic_data #text_recognition #ctc
#ocr
#dataset_generator
#سورس_کد

در اینجا شبکه های EfficientNet معرفی شدند که با تعداد پارامتر کمتر و دقت بالاتر مدلهای قبلی بودند (سطح زیر نمودار accuracy/#of parameters بالایی داشتند.)

دیروز پیاده سازی #Keras آن منتشر شده است
https://github.com/qubvel/efficientnet

from efficientnet import EfficientNetB0

model = EfficientNetB0(weights='imagenet')

#EfficientNet
#مقاله
دوستانی که با #pytorch کار میکنند، مدل های #EfficientNet به همراه وزنهای آموزش دیده روی imagenet در این مخزن از مدل تنسرفلویی مقاله port شده و در pytorch قابل استفادست.

https://github.com/rwightman/pytorch-image-models

مطالب مرتبط:

مدل کراس:
https://xn--r1a.website/cvision/1287

مقاله اصلی به همراه پیاده سازی اصلی تنسرفلو قدیمی(در ۲ ساپورت نمیشه)

https://xn--r1a.website/cvision/1276
#سوال:
روی یک کامپیوتر چند GPU دارم. چه طور مدلی که با keras ایجاد کردم را روی همه GPU ها آموزش دهم؟

#پاسخ:
طبق این دستور العمل به راحتی میتوانید با استفاده از تابع multi_gpu_model مدل خود را به مدل multi_GPU تبدیل کرده و این مدل را آموزش دهید. در این صورت از تمام GPU های سیستم می‌توانید استفاده کنید.

#سوال:
قبلا (بیش از 1 سال پیش) در این پست کانال و این پست نوشتیم که از تنسرفلو 1.4 به بعد میشه مدل را به #estimator تنسرفلو تبدیل کرد.
خب esetimator که multi_GPU داره و با این روش هم میشه مدلو توزیع شده و یا رو چند GPU اجرا کرد.
آیا روشی که در بالا معرفی شد نسبت به آن روش مزیتی دارد؟

#پاسخ:
وقتی یک مدل #Keras را به estimator تبدیل می‌کنید، فقط معماری مدل را تبدیل کرده و متدهای #callback ی که برای این مدلتون تعریف کردید، نظیر تغییر Learning rate طبق سیاست هایی که نوشتید از کار میوفته!
اما متد multi_gpu_model بازهم یک مدل #keras به شما برمیگرداند، نه estimator و در نتیجه تمامی خاصیت های مدل از جمله callback method ها را حفظ خواهد کرد.
عید سعید فطر را خدمت تمامی اعضای محترم کانال تهنیت عرض میکنم.
#تخفیف 20% #ویدئو #آموزشی
بیست درصد تخفیف فیلم آموزشی یادگیری عمیق با پایتون و تنسرفلو/کراس به مدت محدود به مناسبت عید سعید فطر.

کد تخفیف:
Eid-e-Fetr

تاریخ اعتبار:
تا شنبه 18 خردادماه

ایمیل ارتباط و سوالات در مورد دوره: akhavan@class.vision
لینک خرید: http://class.vision/deeplearning-keras/

#python #tesnorflow #keras #deeplearning
#سوال :
آیا میتوان شبکه ای که با ورودی 224 در 224 آموزش دیده را با سایز ورودی دیگری آموزش داد ؟

#پاسخ :
بله. اگر معماری شبکه متشکل از لایه globalAveragePool باشد این کار امکان پذیر میباشد. در این لایه به دلیل نمونه برداری عمقی از لایه کانولوشن مستقل از سایز سطر در ستون کانولوشن بوده و برای مپ کردن به لایه تمام متصل بعدی برخلاف flatten مشکلی ایجاد نخواهد شد
مثال : شبکه resnet

#نحوه انجام کار :
برای تغییر سایز ورودی شبکه ترین شده در keras آن را لود کرده و به صورت زیر سایز ورودی شبکه را تغییر میدهیم.
model = load_model('checkpoint.h5')
input_layer = InputLayer(input_shape=(img_width, img_hight, channel), name="input_1")
model.layers[0] = input_layer
model.save("checkpoint-reshaped.h5")

در نهایت با دستور زیر نیز میتوانید سایز ورودی لایه و تمام لایه های شبکه را مشاهده نمایید
model.summary()

#کاربرد :
1 - ابتدا شبکه را با سایز ورودی کوچک آموزش داده و پس از چند ایپاک که به درصد دقت مناسبی رسیدیم سایز ورودی را بزرگ کرده و ادامه دهیم یا بر عکس.
2 - متناسب با کاربرد مسیله خود شبکه از قبل آموزش دیده روی دیتاست های بزرگ و جامع تر را با سایز ورودی مناسب تر فاین تیون کنیم.
توضیحات بیشتر :
https://www.aparat.com/v/YgEDH
#مقاله #architecture_engineering

پیدا کردن نحوه اتصالات یک شبکه عصبی به طوری که تابع loss حالت کمینه پیدا کند و بار محاسباتی کاهش یابد.
در این روش نحوه اتصالات شبکه در طول آموزش ثابت نیستند و شبکه علاوه بر پارامترها، ساختار شبکه و بهترین نوع اتصالات شبکه را هم یاد می گیرد!
این روش برای شبکه های بازگشتی هم قابل اعمال است.

Discovering Neural Wirings
https://arxiv.org/abs/1906.00586v1
Mitchell Wortsman, Ali Farhadi, Mohammad Rastegari