به روزرسانی عصبی DSL V0.2.5: ویژگی های HPO چند فریم را کاوش کنید

ما از اعلام انتشار عصبی DSL V0.2.5 هیجان زده هستیم! این به روزرسانی پیشرفت های قابل توجهی در بهینه سازی هایپرپارامتر (HPO) به همراه دارد ، و این باعث می شود که یکپارچه در هر دو پشتی Pytorch و Tensorflow ، همراه با چندین پیشرفت و اصلاحات دیگر کار کند.
🚀 ویژگی Spotlight: پشتیبانی HPO چند فریم
ویژگی برجسته در V0.2.5 سیستم بهینه سازی HyperParameter یکپارچه است که به طور مداوم در پشت Pytorch و Tensorflow با پشتوانه کار می کند. این بدان معنی است که شما می توانید:
- پارامترهای مدل و HPO خود را یک بار تعریف کنید
- بهینه سازی را با هر یک از پس زمینه اجرا کنید
- نتایج را در چارچوب ها مقایسه کنید
- از نقاط قوت هر چارچوب استفاده کنید
در اینجا استفاده از آن آسان است:
network HPOExample {
input: (28, 28, 1)
layers:
Conv2D(filters=HPO(choice(32, 64)), kernel_size=(3,3))
MaxPooling2D(pool_size=(2,2))
Flatten()
Dense(HPO(choice(128, 256, 512)))
Output(10, "softmax")
optimizer: Adam(learning_rate=HPO(log_range(1e-4, 1e-2)))
train {
epochs: 10
search_method: "bayesian"
}
}
با هر یک از پس زمینه ها اجرا کنید:
# PyTorch backend
neural compile model.neural --backend pytorch --hpo
# TensorFlow backend
neural compile model.neural --backend tensorflow --hpo
strucing بهینه ساز پیشرفته
ما به طور قابل توجهی نحوه عملکرد بهینه سازی ها در DSL را بهبود بخشیده ایم:
- نحو بدون نقل قول: نحو تمیز کننده برای پارامترهای بهینه ساز بدون نقل قول
- پارامترهای HPO تو در تو: پشتیبانی کامل از HPO در برنامه های نرخ یادگیری
-
نماد علمی: رسیدگی بهتر نماد علمی (به عنوان مثال ،
1e-4
در مقابل0.0001
)
قبل از آن:
optimizer: "Adam(learning_rate=HPO(log_range(1e-4, 1e-2)))"
بعد از:
optimizer: Adam(learning_rate=HPO(log_range(1e-4, 1e-2)))
مثال پیشرفته با برنامه نرخ یادگیری:
optimizer: SGD(
learning_rate=ExponentialDecay(
HPO(range(0.05, 0.2, step=0.05)), # Initial learning rate
1000, # Decay steps
HPO(range(0.9, 0.99, step=0.01)) # Decay rate
),
momentum=HPO(range(0.8, 0.99, step=0.01))
)
معیارهای دقت و فراخوان
حلقه های آموزشی اکنون دقت و یادآوری را در کنار از دست دادن و دقت گزارش می دهند ، و به شما نمایش جامع تری از عملکرد مدل خود می دهد:
loss, acc, precision, recall = train_model(model, optimizer, train_loader, val_loader)
🛠 پیشرفت های دیگر
- پیشرفت پیام خطا: پیام های خطای دقیق تر با اطلاعات خط/ستون
- اعتبار سنجی لایه: اعتبار سنجی بهتر برای لایه های MaxPooling2d ، batchnormalization ، ترک تحصیل و CONV2D
- یکپارچه سازی Tensorrt: اضافه شده تنظیم Tensorrt مشروط در خط لوله CI برای محیط های GPU
- قطعه های VSCode: قطعه های کد اضافه شده برای توسعه سریعتر DSL عصبی در VScode
- خط لوله CI/CD: پیشرفته اقدامات GitHub با استفاده از خطای بهتر و گزارش دهی
🐛 رفع اشکال
- تجزیه پارامترهای بهینه ساز HPO بدون نقل قول
- مدیریت بازنمایی رشته اصلاح شده در پارامترهای HPO
- مشکلات حل شده با پارامترهای HPO تو در تو در برنامه های نرخ یادگیری
- اعتبار سنجی پیشرفته برای انواع مختلف لایه
- دست زدن به پارامتر ثابت در Concatenate ، فعال سازی ، لامبدا و لایه های تعبیه شده
📦 نصب
pip install neural-dsl
🔗 پیوندها
🙏 از ما حمایت کنید
اگر DSL عصبی را مفید می دانید ، لطفاً در نظر بگیرید:
- به ما ستاره ای در Github می دهد
- به اشتراک گذاشتن این پروژه با دوستان و همکاران خود
- کمک به پایگاه کد یا مستندات
هرچه به توسعه دهندگان بیشتری برسیم ، احتمال بیشتری برای ساختن چیزی واقعاً انقلابی در کنار هم داریم!
عصبی DSL یک زبان خاص دامنه برای تعریف ، آموزش ، اشکال زدایی و استقرار شبکه های عصبی با نحو اعلامی ، پشتیبانی از چارچوب متقابل و ردیابی اجرای داخلی است.
عصبی DSL یک WIP DSL و اشکال زدایی است ، اشکالات وجود دارد ، بازخورد خوش آمدید! این پروژه در حال توسعه فعال است و هنوز آماده تولید نیست!