对 textcnn 的理解

虽然用 cnn 训练主题分类很久了,金牌突然有点疑惑,本质上 textcnn 就是用 kernel 进行特征提取,ok,那么问题来了:为什么我要进行 embedding?embedding 之后应该还是表示这个字(中文),那我用embedding_dim=1(就是字典 id)来做可不可以,理论上应该没啥变化的哈(自己认为)

那就做个实验吧

一、把之前embedding = tf.get_variable('embedding', [self.config.vocab_size, self.config.embedding_dim], trainable=Flase) 设置成不可训练,也就是说在训练过程中 embedding 不改变,结果比原来trainable=True 稍微差一点。

二、把上式self.config.embedding_dim=1,接着测试,效果十分差,惨不忍睹。

三、那重新设置回去,使得 embedding可训练,看看是不是能够打到 word2vec 的效果,代码有点问题,暂时不知道那里错了,错误如下:

目前的结论就是 embedding 是十分有必要的,应该会打到 word2vec 的效果,等我找到 bug 再展示吧

猜你喜欢

转载自blog.csdn.net/dongfeng10086/article/details/86172459