簡體   English   中英

AttributeError:模塊'keras.api._v2.keras.metrics'沒有屬性'auc'

[英]AttributeError: module 'keras.api._v2.keras.metrics' has no attribute 'auc'

我正在從這個鏈接Chexpert Keras CNN運行這個特定的筆記本,它正在 cheexpert 數據集和 keras 庫上訓練 cnn model。

但是,當我運行此語法時出現此特定錯誤。

    history = model.fit_generator(generator=train_generator,
                        steps_per_epoch=STEP_SIZE_TRAIN,
                        validation_data=validation_generator,
                        validation_steps=STEP_SIZE_VALID,
                        epochs=epochs, callbacks = [checkpointer])

我得到了這個特殊的錯誤

AttributeError:模塊“keras.api._v2.keras.metrics”沒有屬性“auc”。

有人可以告訴我如何解決這個問題嗎?

可以在此處找到錯誤的蹤跡

---> 13     history = model.fit_generator(generator=train_generator,
     14                         steps_per_epoch=STEP_SIZE_TRAIN,
     15                         validation_data=validation_generator,

~\anaconda3\lib\site-packages\keras\engine\training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
   2258         'Please use `Model.fit`, which supports generators.',
   2259         stacklevel=2)
-> 2260     return self.fit(
   2261         generator,
   2262         steps_per_epoch=steps_per_epoch,

~\anaconda3\lib\site-packages\keras\utils\traceback_utils.py in error_handler(*args, **kwargs)
     65     except Exception as e:  # pylint: disable=broad-except
     66       filtered_tb = _process_traceback_frames(e.__traceback__)
---> 67       raise e.with_traceback(filtered_tb) from None
     68     finally:
     69       del filtered_tb

~\anaconda3\lib\site-packages\keras\engine\training.py in tf__train_function(iterator)
     13                 try:
     14                     do_return = True
---> 15                     retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
     16                 except:
     17                     do_return = False

~\AppData\Local\Temp\__autograph_generated_filelydcowkp.py in tf__auc(y_true, y_pred)
      8                 do_return = False
      9                 retval_ = ag__.UndefinedReturnValue()
---> 10                 auc = ag__.converted_call(ag__.ld(tf).metrics.auc, (ag__.ld(y_true), ag__.ld(y_pred)), None, fscope)[1]
     11                 ag__.converted_call(ag__.converted_call(ag__.ld(K).get_session, (), None, fscope).run, (ag__.converted_call(ag__.ld(tf).local_variables_initializer, (), None, fscope),), None, fscope)
     12                 try:

AttributeError: in user code:

    File "C:\Users\danie\anaconda3\lib\site-packages\keras\engine\training.py", line 1051, in train_function  *
        return step_function(self, iterator)
    File "C:\Users\danie\AppData\Local\Temp/ipykernel_26088/1353090691.py", line 2, in auc  *
        auc = tf.metrics.auc(y_true, y_pred)[1]

    AttributeError: module 'keras.api._v2.keras.metrics' has no attribute 'auc'

我認為計算 auc 的自定義 function 可能會把事情搞砸。 但是,您可以將 keras 中現有的class 用於 AUC

build_model function 中,將您編譯 model 的行替換為以下內容:

from tensorflow.keras.metrics import AUC
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy', AUC()])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM