faustomorales / keras-ocr

A packaged and flexible version of the CRAFT text detector and Keras CRNN recognition model.
https://keras-ocr.readthedocs.io/
MIT License
1.36k stars 347 forks source link

Evaluation of my model #225

Open zaghdoud2019 opened 1 year ago

zaghdoud2019 commented 1 year ago

Hi,thanks fi this work,please can you help me how to evaluate my model after the custom train ,can you give me an example of the dataset I want to display the score after the test.

zaghdoud2019 commented 1 year ago

Hi, please why Always the accuracy equal to
Looking for /root/.keras-ocr/craft_mlt_25k.h5 Epoch 1/5

:46: UserWarning: `Model.fit_generator` is deprecated and will be removed in a future version. Please use `Model.fit`, which supports generators. detector.model.fit_generator( 192/192 [==============================] - 55s 276ms/step - loss: 0.0610 - acc: 0.9999 - val_loss: 0.0466 - val_acc: 1.0000 Epoch 2/5 192/192 [==============================] - 53s 276ms/step - loss: 0.0575 - acc: 1.0000 - val_loss: 0.0864 - val_acc: 1.0000 Epoch 3/5 192/192 [==============================] - 53s 275ms/step - loss: 0.0588 - acc: 1.0000 - val_loss: 0.0346 - val_acc: 1.0000 Epoch 4/5 192/192 [==============================] - 53s 279ms/step - loss: 0.0493 - acc: 1.0000 - val_loss: 0.0554 - val_acc: 1.0000 Epoch 5/5 192/192 [==============================] - 53s 275ms/step - loss: 0.0501 - acc: 1.0000 - val_loss: 0.0231 - val_acc: 1.0000 :56: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators. test_loss, test_acc = detector.model.evaluate_generator( 1.0
zaghdoud2019 commented 1 year ago

the code 👍 train, test = sklearn.model_selection.train_test_split( dataset, test_size=0.2, random_state=42 )

train, validation = sklearn.model_selection.train_test_split( train, test_size=0.2, random_state=42 )

augmenter = imgaug.augmenters.Sequential([ imgaug.augmenters.Affine( scale=(1.0, 1.2), rotate=(-5, 5) ), imgaug.augmenters.GaussianBlur(sigma=(0, 0.5)), imgaug.augmenters.Multiply((0.8, 1.2), per_channel=0.2) ]) generator_kwargs = {'width': 640, 'height': 640} training_image_generator = keras_ocr.datasets.get_detector_image_generator( labels=train, augmenter=augmenter, generator_kwargs ) validation_image_generator = keras_ocr.datasets.get_detector_image_generator( labels=validation, generator_kwargs ) test_image_generator = keras_ocr.datasets.get_detector_image_generator( labels=test, generator_kwargs ) test_image_generator = keras_ocr.datasets.get_detector_image_generator( labels=test1, generator_kwargs )

detector = keras_ocr.detection.Detector() batch_size = 1 training_generator, validation_generator, test_generator = [ detector.get_batch_generator( image_generator=image_generator, batch_size=batch_size ) for image_generator in [training_image_generator, validation_image_generator, test_image_generator] ]

metrics = ['acc']

detector.model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=metrics)

detector.model.fit_generator( generator=training_generator, steps_per_epoch=math.ceil(len(train) / batch_size), epochs=5, workers=0, callbacks=[ tf.keras.callbacks.EarlyStopping(restore_best_weights=True, patience=5), tf.keras.callbacks.CSVLogger(os.path.join(data_dir, '/content/drive/MyDrive/mathese/Databases/nastsarlat/CNN-ker/detector_nasttsarlat.csv')), tf.keras.callbacks.ModelCheckpoint(filepath=os.path.join(data_dir, 'detector_icdar2013.h5')) ], validation_data=validation_generator, validation_steps=math.ceil(len(validation) / batch_size) )

test_loss, test_acc = detector.model.evaluate_generator( generator=test_generator, steps=math.ceil(len(test) / batch_size) ) acc=test_acc print(acc)