به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

سلام

من یه callback واسه کرس دارم که AUC رو آخر هر اپچ برای validation data حساب کنه. ولی متاسفانه با fit_generator کار نمی‌کنه. کد و خطا که میده رو اینجا میزارم.

 # roc callsback
from keras.callbacks import Callback
from sklearn.metrics import roc_auc_score

class RocAucMetric(Callback):

    def on_train_begin(self, logs={}):
        # By default, self.params['metrics'] contains loss and the metric assigned in `model.compile()`
        if not 'val_roc_auc' in self.params['metrics']:
            self.params['metrics'].append('val_roc_auc')

        logs['val_roc_auc'] = float('-inf')

    def on_epoch_end(self, epoch, logs={}):
        y_true = self.validation_data[1]
        y_pred = self.model.predict(self.validation_data[0])
        score = roc_auc_score(y_true, y_pred)

        logs['val_roc_auc'] = score
history = model.fit_generator(
              data_gen(train, id_label_map, batch_size, augment=True),
              validation_data=data_gen(val, id_label_map, batch_size),
              epochs = epoch_num_main, verbose = 1,
              callbacks=[RocAucMetric(),ModelCheckpoint(h5_path, monitor='val_roc_auc', save_best_only=True, mode='max',
                                                        save_weights_only=True) , csv_logger, LR_drop],
           ,   steps_per_epoch=len(train) // batch_size,
              validation_steps=len(val) // batch_size

)

error

<ipython-input-17-2d3c64d5f908> in on_epoch_end(self, epoch, logs)
     13 
     14     def on_epoch_end(self, epoch, logs={}):
---> 15         y_true = self.validation_data[1]
     16         y_pred = self.model.predict(self.validation_data[0])
     17         score = roc_auc_score(y_true, y_pred)

TypeError: 'NoneType' object is not subscriptable
توسط (255 امتیاز)

1 پاسخ

0 امتیاز

سلام
وقتی fit_generator استفاده می کنید validation_data به صورت fit ست نمیشه و این مشکلی بود که توی خوده گیت هاب کراس هم سرش بحث شده:

https://github.com/keras-team/keras/issues/10472#issuecomment-472543538

باید برای callback تون تابع init رو تعریف کنید و اونجا درست مقادیر رو ست کنید

توسط (1.6k امتیاز)
...