Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Epoch 51: early stopping #28

Open
Zain-ul-abdin0 opened this issue Aug 5, 2023 · 7 comments
Open

Epoch 51: early stopping #28

Zain-ul-abdin0 opened this issue Aug 5, 2023 · 7 comments

Comments

@Zain-ul-abdin0
Copy link

Zain-ul-abdin0 commented Aug 5, 2023

Hi!
Model ended training with Epoch 51: early stopping
. I am training with dataset 1040 images? I am training with my 1040 labled images given below but when I try to predict text it shows empty string.
Code ::
image = cv2.imread('./6wf4ef.jpg')
prediction_text = model.predict(image) // return empty string
print(f"Predicted Text: {prediction_text}")
2a4m2e
2a5bpc
2a8722
2d8dny
2de8g

2a2gn2

Prediction is Empty like this :
image

@pythonlessons
Copy link
Owner

your code doesn't match image, not clear what is model

@pythonlessons
Copy link
Owner

This trained model is not predicting my images sir.

show your code, how you do this prediction, because I can't tell why without code...

@Zain-ul-abdin0
Copy link
Author

when I run train.py, it stopped training after sometime and give this message Epoch 51: early stopping and after that when I try to predict image. it did not predict. Below 3 lines I added, it worked with different data set nut not with this.

import cv2
import typing
import numpy as np

from mltu.inferenceModel import OnnxInferenceModel
from mltu.utils.text_utils import ctc_decoder, get_cer

class ImageToWordModel(OnnxInferenceModel):
def init(self, char_list: typing.Union[str, list], *args, **kwargs):
super().init(*args, **kwargs)
self.char_list = char_list

def predict(self, image: np.ndarray):
image = cv2.resize(image, self.input_shape[:2][::-1])

image_pred = np.expand_dims(image, axis=0).astype(np.float32)

preds = self.model.run(None, {self.input_name: image_pred})[0]

text = ctc_decoder(preds, self.char_list)[0]

return text

if name == "main":
import pandas as pd
from tqdm import tqdm
from mltu.configs import BaseModelConfigs

configs = BaseModelConfigs.load("./Models/02_captcha_to_text/202308060003/configs.yaml")
model = ImageToWordModel(model_path=configs.model_path, char_list=configs.vocab)

df = pd.read_csv("./Models/02_captcha_to_text/202308060003/val.csv").values.tolist()

accum_cer = []

for image_path, label in tqdm(df):

image = cv2.imread(image_path)

prediction_text = model.predict(image)

cer = get_cer(prediction_text, label)

print(f"Image: {image_path}, Label: {label}, Prediction: {prediction_text}, CER: {cer}")

accum_cer.append(cer)

image = cv2.imread('./6wf4ef.jpg')
prediction_text = model.predict(image)
print(f"Predicted Text: {prediction_text}")

@pythonlessons
Copy link
Owner

what was your CER while training model on validation data, I think your model was not trained

@Zain-ul-abdin0
Copy link
Author

Zain-ul-abdin0 commented Aug 8, 2023

is your model is able to be train from this data below , and if I share path to my labeled folder. May you please train your model on my data.

2a8722

@pythonlessons
Copy link
Owner

Yes, I can train you a model for $$. Otherwise, I can't train a model for everyone. If you are interested write me an email to pythonlessons0@gmail.com

@zainulabdinsystems
Copy link

I can give you $$ but how much? I need to crack all images of this type.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants