oh-my-ocr / text_renderer

https://oh-my-ocr.github.io/text_renderer/README.html
MIT License
801 stars 161 forks source link

EnumCorpus #4

Closed kingwpf closed 4 years ago

kingwpf commented 4 years ago

感谢无私分享,我有一个小小的提议, EnumCorpus在line数量特别大时非常的慢,是不是可以通过counter计行数的方式读取,这样也能保证每一行数据都会用来生成图片,下面的方式我试了一下还是蛮快的。 import random from multiprocessing import Lock, Value

    random.shuffle(self.texts)
    self.index = Value('i', 0)
    self.total_line = len(self.texts)
    self.lock = Lock()

def get_text(self):
    with self.lock:
        if self.index.value >= self.total_line:
            self.index.value = 0
        else:
            self.index.value += 1
    return self.texts[self.index.value]
Sanster commented 4 years ago

主要是因为 numpy 的 random.choice 很慢,已经修复了,见这个 commit