عامر ابراهيم نشر 13 سبتمبر 2021 أرسل تقرير نشر 13 سبتمبر 2021 كيف يمكننا القيام بإعادة تدريب النموذج من حيثما توقف. فأنا أريد أن أدرب نموذجي الآن على مجموعة بيانات وفي المستقبل سيكون لدي المزيد من البيانات وأريد أن يتم تدريب النموذج عليها من دون الحاجة إلى إعادة تدريب النموذج من البداية مرة أخرى؟ 2 اقتباس
0 Ali Haidar Ahmad نشر 13 سبتمبر 2021 أرسل تقرير نشر 13 سبتمبر 2021 حسناً تابع في المثال التالي: import tensorflow as tf from tensorflow import keras mnist = tf.keras.datasets.mnist (x_train, y_train),(x_val, y_val) = mnist.load_data() x_train = x_train / 255.0 x_val = x_test / 255.0 # تعريف نموذج def model(): m = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(456, activation="relu"), tf.keras.layers.Dropout(0.5), tf.keras.layers.Dense(128, activation="relu"), tf.keras.layers.Dropout(0.3), tf.keras.layers.Dense(10, activation="softmax") ]) return m model=model() model.compile(optimizer='rmsprop', loss='sparse_categorical_crossentropy',metrics=['acc']) # تدريب النموذج model.fit(x_train, y_train, epochs = 10, validation_data = (x_test,y_test)) الآن بشكل عام model.save تقوم بحفظ كل المعلومات اللازمة لمواصلة التدريب، لكن المشكلة الوحيدة هي حالة ال Optimizer فقد لايتم تحميلها أو حفظها بشكل صحيح (يحدث فقدان للمعلومات). ولهذا السبب ينصح بحفظ نموذجك بتنسيق تنسرفلو أي tf بدلاً من حفظها بالامتداد الافتراضي (h5). # حفظ النموذج بتنسيق تنسرفلو model.save('./MyModel_tf',save_format='tf') الآن لو أردت إعادة تحميله ومواصلة التدريب: # تحميل النموذج model = tf.keras.models.load_model('./MyModel_tf') # التدريب model.fit(....) اقتباس
0 Ahmed Sharshar نشر 13 سبتمبر 2021 أرسل تقرير نشر 13 سبتمبر 2021 ببساطة يمكنك في البداية عمل النموذج الذي تريد تدريبه الأن ثم تقوم بحفظ النموذج على حاسوبك كملف، الملف الذي تحفظه يحتوى على شكل النموذج وكذلك قيم العناصر التي تم تدريبها، بعد ذلك يمكنك تحميل النموذج واستكمال تدريبه، أنظر الكود التالي كمثال: import numpy as np import tensorflow as tf from tensorflow import keras def get_model(): # Create a simple model. inputs = keras.Input(shape=(32,)) outputs = keras.layers.Dense(1)(inputs) model = keras.Model(inputs, outputs) model.compile(optimizer="adam", loss="mean_squared_error") return model model = get_model() # تدريب النموذج test_input = np.random.random((128, 32)) test_target = np.random.random((128, 1)) model.fit(test_input, test_target) # حفظ النوذج بعد تدريبه model.save("my_model") # اعادة تحميل النموذج reconstructed_model = keras.models.load_model("my_model") np.testing.assert_allclose( model.predict(test_input), reconstructed_model.predict(test_input) ) #استكمال أو اعادة تدريب النموذج المدرب reconstructed_model.fit(test_input, test_target) اقتباس
السؤال
عامر ابراهيم
كيف يمكننا القيام بإعادة تدريب النموذج من حيثما توقف. فأنا أريد أن أدرب نموذجي الآن على مجموعة بيانات وفي المستقبل سيكون لدي المزيد من البيانات وأريد أن يتم تدريب النموذج عليها من دون الحاجة إلى إعادة تدريب النموذج من البداية مرة أخرى؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.