pythonlessons / mltu

Machine Learning Training Utilities (for TensorFlow and PyTorch)
MIT License
160 stars 100 forks source link

Epoch 51: early stopping #28

Open Zain-ul-abdin0 opened 11 months ago

Zain-ul-abdin0 commented 11 months ago

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 commented 11 months ago

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

pythonlessons commented 11 months ago

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 commented 11 months ago

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 commented 11 months ago

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

Zain-ul-abdin0 commented 11 months ago

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 commented 11 months ago

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 commented 10 months ago

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