تحويل دفتر ملاحظات إلى برنامج نصي
عند استخدام دفاتر الملاحظات للتجريب والتطوير، ستحتاج أولا إلى تحويل دفتر ملاحظات إلى برنامج نصي. بدلا من ذلك، قد تختار التخطي باستخدام دفاتر الملاحظات والعمل فقط مع البرامج النصية. في كلتا الحالتين، هناك بعض التوصيات عند إنشاء البرامج النصية للحصول على تعليمات برمجية جاهزة للإنتاج.
البرامج النصية مثالية للاختبار والتشغيل التلقائي في بيئة الإنتاج الخاصة بك. لإنشاء برنامج نصي جاهز للإنتاج، ستحتاج إلى:
- إزالة التعليمات البرمجية غير الخاصة.
- إعادة بناء التعليمات البرمجية الخاصة بك في وظائف.
- اختبر البرنامج النصي الخاص بك في المحطة الطرفية.
إزالة كافة التعليمات البرمجية غير الأساسية
تتمثل الفائدة الرئيسية لاستخدام دفاتر الملاحظات في القدرة على استكشاف بياناتك بسرعة. على سبيل المثال، يمكنك استخدام print() عبارات و df.describe() لاستكشاف بياناتك ومتغيراتك. عند إنشاء برنامج نصي سيتم استخدامه للأتمتة، تريد تجنب تضمين التعليمات البرمجية المكتوبة لأغراض استكشافية.
أول شيء لذلك تحتاج إلى القيام به لتحويل التعليمات البرمجية الخاصة بك إلى التعليمات البرمجية للإنتاج هو إزالة التعليمات البرمجية غير الضرورية. خاصة عندما تقوم بتشغيل التعليمات البرمجية بانتظام، تريد تجنب تنفيذ أي شيء غير فعال لتقليل التكلفة ووقت الحساب.
إعادة بناء التعليمات البرمجية الخاصة بك في وظائف
عند استخدام التعليمات البرمجية في العمليات التجارية، تريد أن تكون التعليمات البرمجية سهلة القراءة حتى يتمكن أي شخص من الاحتفاظ بها. أحد النهج الشائعة لتسهيل قراءة التعليمات البرمجية واختبارها هو استخدام الوظائف.
على سبيل المثال، ربما استخدمت المثال التالي للتعليمات البرمجية في دفتر ملاحظات لقراءة البيانات وتقسيمها:
# read and visualize the data
print("Reading data...")
df = pd.read_csv('diabetes.csv')
df.head()
# split data
print("Splitting data...")
X, y = df[['Pregnancies','PlasmaGlucose','DiastolicBloodPressure','TricepsThickness','SerumInsulin','BMI','DiabetesPedigree','Age']].values, df['Diabetic'].values
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=0)
كما تسمح لك الدالات أيضا باختبار أجزاء من التعليمات البرمجية الخاصة بك، قد تفضل إنشاء دالات أصغر متعددة، بدلا من دالة كبيرة واحدة. إذا كنت ترغب في اختبار جزء من التعليمات البرمجية الخاصة بك، يمكنك اختيار اختبار جزء صغير فقط وتجنب تشغيل المزيد من التعليمات البرمجية أكثر من اللازم.
يمكنك إعادة بناء التعليمات البرمجية الموضحة في المثال إلى دالتين:
- قراءة البيانات
- تقسيم البيانات
قد يكون مثال على التعليمات البرمجية المعاد بناء التعليمات البرمجية ما يلي:
def main(csv_file):
# read data
df = get_data(csv_file)
# split data
X_train, X_test, y_train, y_test = split_data(df)
# function that reads the data
def get_data(path):
df = pd.read_csv(path)
return df
# function that splits the data
def split_data(df):
X, y = df[['Pregnancies','PlasmaGlucose','DiastolicBloodPressure','TricepsThickness',
'SerumInsulin','BMI','DiabetesPedigree','Age']].values, df['Diabetic'].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=0)
return X_train, X_test, y_train, y_test
إشعار
ربما لاحظت أنه تم حذف التعليمات البرمجية غير المجدية أيضا في التعليمات البرمجية التي تمت إعادة بناء التعليمات البرمجية. يمكنك اختيار استخدام print عبارات في التعليمات البرمجية للإنتاج إذا كنت ستراجع إخراج البرنامج النصي وتريد التأكد من تشغيل جميع التعليمات البرمجية كما هو متوقع. ومع ذلك، عندما تعرف أنك لن تراجع إخراج برنامج نصي في محطة طرفية، فمن الأفضل إزالة أي تعليمة برمجية ليس لها غرض.
اختبر برنامجك النصي
قبل استخدام البرامج النصية في بيئات الإنتاج، على سبيل المثال من خلال دمجها مع مسارات التنفيذ التلقائي، ستحتاج إلى اختبار ما إذا كانت البرامج النصية تعمل كما هو متوقع.
إحدى الطرق البسيطة لاختبار البرنامج النصي الخاص بك، هي تشغيل البرنامج النصي في محطة طرفية. داخل مساحة عمل Azure التعلم الآلي، يمكنك تشغيل برنامج نصي بسرعة في المحطة الطرفية لمثيل الحساب.
عند فتح برنامج نصي في صفحة Notebooks في استوديو Azure التعلم الآلي، يمكنك اختيار حفظ البرنامج النصي وتشغيله في المحطة الطرفية.
بدلا من ذلك، يمكنك الانتقال مباشرة إلى المحطة الطرفية لمثيل الحساب. انتقل إلى صفحة Compute وحدد Terminal لمثيل الحساب الذي تريد استخدامه. يمكنك استخدام الأمر التالي لتشغيل برنامج نصي Python يسمى train.py:
python train.py
ستظهر مخرجات print العبارات في المحطة الطرفية. ستظهر أيضا أي أخطاء محتملة في المحطة الطرفية.