pbcquoc / vietocr

Transformer OCR
Apache License 2.0
613 stars 209 forks source link

vocab trong việt ocr #20

Closed CuongNN218 closed 3 years ago

CuongNN218 commented 3 years ago

Mình có 1 chút thắc mắc về xử lý target trong vietocr

  1. Trong vocab.py có 1 biến là self.mask_token không biết biến đấy có ý nghĩa là gì, mình có thể hiểu là giá trị unknown trong vocab không ?
  2. Target được feed vào transformer có fix_length hay không ?
  3. Nếu fix length thì len của hàm len sẽ là max_length+2 thay vì là +4
CuongNN218 commented 3 years ago

@pbcquoc Mình có 1 thắc mắc là điểm khác nhau của batch['tgt_input'] và batch['tgt_output'] là gì? theo mình hiểu thì input đã được dịch về bên phải 1 kí sự so với output có thêm image mình thấy là input khá khác so với output khi mà có thêm 1 vài kí tự * - mask_token không biết mục đích của bạn là gì ?

pbcquoc commented 3 years ago

Mình có 1 chút thắc mắc về xử lý target trong vietocr

  1. Trong vocab.py có 1 biến là self.mask_token không biết biến đấy có ý nghĩa là gì, mình có thể hiểu là giá trị unknown trong vocab không ?
  2. Target được feed vào transformer có fix_length hay không ?
  3. Nếu fix length thì len của hàm len sẽ là max_length+2 thay vì là +4 Một số thắc mắc của bạn mình giải thích như sau nhé
  4. mask token là khi huấn luyện chúng ta sẽ random che đi kí tự bất ký khi input vào decoder transformer, giúp mô hình học language model
  5. không fix len và được padding để các câu trong mỗi batch có chiều dài bằng nhau
  6. len đó là số ký tự của tập vocab thôi, ko phải là chiều dài của câu
pbcquoc commented 3 years ago

@pbcquoc Mình có 1 thắc mắc là điểm khác nhau của batch['tgt_input'] và batch['tgt_output'] là gì? theo mình hiểu thì input đã được dịch về bên phải 1 kí sự so với output có thêm image mình thấy là input khá khác so với output khi mà có thêm 1 vài kí tự * - mask_token không biết mục đích của bạn là gì ?

chuẩn rồi nhé bạn.

CuongNN218 commented 3 years ago

@pbcquoc mình muốn hỏi thêm 1 chuts:

  1. 'tgt_padding_mask' có ý nghĩa gì khi training. nếu mình chỉ dùng decoder của transformer thay vì dùng cả encoder và decoder như bạn thì có cần thiết phải dùng key này không vì mình hiểu là decoder chỉ cần dùng mask ma trận vuông tam giác chéo để mask target.
    1. tgt_input và tgt_output như này là dịch trái hay dịch phải
pbcquoc commented 3 years ago

@pbcquoc mình muốn hỏi thêm 1 chuts:

  1. 'tgt_padding_mask' có ý nghĩa gì khi training. nếu mình chỉ dùng decoder của transformer thay vì dùng cả encoder và decoder như bạn thì có cần thiết phải dùng key này không vì mình hiểu là decoder chỉ cần dùng mask ma trận vuông tam giác chéo để mask target.
  2. tgt_input và tgt_output như này là dịch trái hay dịch phải
  1. tgt_padding_mask cho biết kí tự nào là kí tự padding, do đó thì rất cần thiết để mô hình phân biệt được kí tự nào là kí tự thật sự, kí tự nào là padding do mình tự thêm vào để kích thước bằng nhau trong cùng 1 batch.
  2. tgt_input bỏ đi kí tự đầu tiên thì ra tgt_output nha bạn :))
CuongNN218 commented 3 years ago

@pbcquoc i got it. Cảm ơn bạn :v