dailenson / SDT

This repository is the official implementation of Disentangling Writer and Character Styles for Handwriting Generation (CVPR 2023)
MIT License
1.03k stars 85 forks source link

内容编码器疑似与论文不一致 #95

Closed chungkwong closed 1 month ago

chungkwong commented 2 months ago

按照论文,内容编码器应该有两层Transformer编码器,但实际上却有三层,而二由于一处疑似编码错误而被用作头的个数。

根据encoder.py,层数应该是Content_TR类构造函数的第三个参数:

class Content_TR(nn.Module):
    def __init__(self, d_model=256, nhead=8, num_encoder_layers=3,
                 dim_feedforward=2048, dropout=0.1, activation="relu",
                 normalize_before=True):

但在model.py中,num_encoder_layers却被作为Content_TR类构造函数的第二个参数nhead:

        self.content_encoder = Content_TR(d_model, num_encoder_layers)

于是content_encoder的Transformer编码器层数实际上为默认参数3,而头的数目则是2。请问我的理解是否正确?你们觉得层数和头数对生成的效果有显著影响吗?

dailenson commented 2 months ago

感谢您发现的bug,我检查了下您说的地方确实是这样的。我在内容编码器预训练的过程中做过测试,是可以很好的提取内容特征的,对生成效果不会有太大影响。