عامر ابراهيم نشر 12 سبتمبر 2021 أرسل تقرير نشر 12 سبتمبر 2021 كيف يمكننا تخزين نتائج ال Epochs خلال التدريب؟ 2 اقتباس
1 Ali Haidar Ahmad نشر 12 سبتمبر 2021 أرسل تقرير نشر 12 سبتمبر 2021 نستخدم CSVLogger callback للقيام بحفظ نتائج ال Epochs خلال عملية التدريب: tf.keras.callbacks.CSVLogger(filename, separator=",", append=False) حيث نمرر له مسار الملف الذي نريد أن يتم حفظ البيانات فيه. والفاصل الذي نريد أن يتم فصل العناصر فيه. أما الوسيط الأخير فنضبطه على True إذا كان الملف موجود مسبقاً ونريد الإضافة عليه (في حالة كان موجود ولم يتم ضبطه على True سيتم الكتابة فوق الملف). ويمكننا استخدامه أثناء تدريب النماذج بالشكل التالي: # نقوم بتعريف الكول باكس أولاً csv_logger = CSVLogger('training.log') #fit في الدالة callbacks ثم نمرره إلى الوسيطة model.fit(X_train, Y_train, callbacks=[csv_logger]) مثال: from tensorflow.keras.models import Sequential from sklearn.datasets import make_moons from tensorflow.keras.layers import Dense # تعريف بيانات عشوائية X, y = make_moons(n_samples=200, noise=0.2, random_state=4) # قسم البيانات إلى تدريب واختبار n_train = 30 trainX, testX = X[:n_train, :], X[n_train:, :] trainy, testy = y[:n_train], y[n_train:] # تعريف نموذج model = Sequential() model.add(Dense(600, input_dim=2, activation='relu')) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # تعريف الكولباكس from tensorflow.keras.callbacks import CSVLogger csv_logger = CSVLogger('training.log') # تدريب النموذدج model.fit(trainX, trainy, validation_data=(testX, testy), epochs=5000, verbose=0, callbacks=[csv_logger]) 1 اقتباس
1 Ahmed Sharshar نشر 12 سبتمبر 2021 أرسل تقرير نشر 12 سبتمبر 2021 يمكنك استخدام csvlogger وذلك لحفظ نتائج كل epoch على حدة، استخدامها بسيط حيث تعرف الدالة كالتالي: tf.keras.callbacks.CSVLogger( filename, separator=',', append=False ) واستخدامها بسيط حيث يتم اضافة اسم الملف الذي تريد التحميل فيه ثم وضعها في Model.fit كالتالي: csv_logger = CSVLogger('example.log') model.fit(X_train, Y_train, callbacks=[csv_]) المثال التالي يوضح كيفية استخدامها في عملية التدريب: def train(): data = load_train_data() data = data.reshape((data.shape[0],data.shape[1],data.shape[2],1)) data = data.astype('float32')/255.0 # model selection if args.pretrain: model = load_model(args.pretrain, compile=False) else: if args.model == 'DnCNN': model = models.DnCNN() # تشغيل النموذج model.compile(optimizer=Adam(), loss=['mse']) ckpt = ModelCheckpoint(save_dir+'/model_{epoch:02d}.h5', monitor='val_loss', verbose=0, period=args.save_every) csv_logger = CSVLogger(save_dir+'/log.csv', append=True, separator=',') lr = LearningRateScheduler(step_decay) # التدريب history = model.fit_generator(train_datagen(data, batch_size=args.batch_size), steps_per_epoch=len(data)//args.batch_size, epochs=args.epoch, verbose=1, callbacks=[ckpt, csv_logger, lr]) return model اقتباس
السؤال
عامر ابراهيم
كيف يمكننا تخزين نتائج ال Epochs خلال التدريب؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.