مهم
هذه ميمي معقدة بذل الكثير من الجهد. لذا من فضلك ، لا أحد يقاضيني.
Shamboflow هو واجهة برمجة تطبيقات مفتوحة المصدر لإنشاء نماذج التعلم الآلي. وهو متوفر فقط في بيثون.
Shamboflow هو انخفاض سريع للغاية في replacemnet ل tensorflow (قراءة لا تضيف أي شيء ، ولا حتى تحسين الأداء). إنه بناء من الصفر (اقرأ ، باستخدام Numpy) ويأتي مع دعم GPU CUDA خارج الصندوق. سأخبر القصة في نهاية هذا الملف حول كيفية حدوث ذلك.
في ملاحظة جادة ، كنت أرغب دائمًا في تنفيذ شبكة عصبية باستخدام Numpy فقط ولا توجد مكتبات إضافية وهذا أعطاني عذرًا للقيام بذلك. وهكذا فعلت. لقد صنعت هذا في غضون أسبوع. تعلمت الكثير من الأشياء في هذه العملية وكانت تجربة متعة وممتعة. تعتمد هذه المكتبة على Numpy كما هو مذكور ولكنها تستخدم أيضًا Cupy لإضافة دعم GPU. التبعيات الأخرى هما TQDM لشريط التقدم و Colorama للنصوص الملونة. من المحتمل أن أعمل أكثر على هذا لأنني بذلت بالفعل بعض الجهد.
تثبيت باستخدام حزمة PIP.
$ pip install shamboflow لتحديث Shamboflow إلى أحدث إصدار ، أضف علامة --upgrade إلى الأمر أعلاه
برنامج مثال صغير يوضح كيفية إنشاء ANN بسيطة مع طوبولوجيا 3-2-1 وتدريبه مع البيانات لأداء التنبؤات.
import numpy as np
# Dataset
x_data = np . array ([[ 1 , 0 , 1 ]])
y_data = np . array ([[ 1 ]])
# Parameters
learning_rate = 0.9
train_epochs = 20
# Import the library
import shamboflow as sf
# Create a model
model = sf . models . Sequential ()
# Add layers
model . add ( sf . layers . Dense ( 3 ))
model . add ( sf . layers . Dense ( 2 , activation = 'sigmoid' ))
model . add ( sf . layers . Dense ( 1 , activation = 'sigmoid' ))
# Compile the model
model . compile ( learning_rate = learning_rate , loss = 'mean_squared_error' , verbose = True )
# Callbacks
checkpoint = sf . callbacks . ModelCheckpoint ( monitor = 'loss' , save_best_only = True , verbose = True )
# Train the model with the dataset
model . fit (
x_data ,
y_data ,
epochs = train_epochs ,
callbacks = [ checkpoint ]
)
# Save the trained model to disk
model . save ( 'model.meow' ) import numpy as np
import shamboflow as sf
model = sf . models . load_model ( "./model.meow" )
a = np . array ([[ 1 , 0 , 1 ]])
res = model . predict ( a )
print ( res )قصتها.
في الأسبوع الماضي ، كان لدينا فصل على الشبكات العصبية في الجامعة. في نهاية الفصل ، أخبرنا أستاذنا بتنفيذ الشبكة المحددة في بيثون. الآن ، كان قد أخبرنا سابقًا بعدم استخدام أي مكتبات لأداء مهامنا لأن ذلك من شأنه أن يفسد الغرض من تعلم الخوارزميات. لذلك ، متحمس لأنني سأقوم بتنفيذ شبكة عصبية باستخدام Python فقط. ثم أخبرنا أنه يمكننا استخدام المكتبات لصنع الشبكة. وكنت مضطربة قليلا. أخبرني صديقي مازحا ، "لا ، عليك أن تصنعها". وقلت ، إذا أنهيتها في غضون أسبوع ، فهل ستستخدمها في المهمة. وافق أصدقائي على ذلك.
لذلك ، ها هو. مكتبتي. سأجعلهم يستخدمون هذا للمهام.