/DPCNN-TextCNN-Pytorch-Inception

本项目主要为针对DPCNN(Deep Pyramid Convolutional Neural Networks for Text Categorization )文本分类(Text Classification)的论文复现以及基于知乎看山杯Inception的修改和复现,后者效果略优。

Primary LanguagePython

声明

  • 由于本项目源于合作项目,故无法提供LoadData.py部分,敬请谅解。
  • 本项目主要为针对DPCNN(Deep Pyramid Convolutional Neural Networks for Text Categorization )的论文复现以及基于知乎看山杯Inception的修改和复现,后者效果略优。
  • 本项目基于Pytorch框架实现,但内部使用 tensorboardX 进行tensorboard支持。
  • 项目所需非基础requirement列于requirements.txt中,可使用pip install -r requirements.txt命令一键安装。
  • 模型置于models文件夹下。
  • 感谢Zekang Li的部分代码合作。

模型简介

  • BasicModule:基类模型,提供基础的保存读取功能
  • TextCNNDeep:基于原始论文的dpcnn模型,前置特征提取为标准TextCNN
  • TextCNNInc:基于知乎看山杯的TextCNN模型
  • TextCNNIncDeep:改进后的dpcnn模型,基于知乎看山杯的TextCNN模型

参数部分

公共参数设置

  • self.USE_CUDA = torch.cuda.is_available() # GPU是否可用
  • self.RUNNING_ON_SERVER = False # 代码运行在本地还是服务器
  • self.SUMMARY_PATH = "summary/TextCNN_char" # 设定tensorboard保存路径
  • self.NET_SAVE_PATH = "./source/trained_net/" # 训练好的网络的储存位置
  • self.TRAIN_DATASET_PATH = "../test_train/xx.txt" # 训练集位置
  • self.TEST_DATASET_PATH = "../test_train/xx.txt" # 测试集位置
  • self.NUM_EPOCHS = 1000 # 本次BATCH数目
  • self.BATCH_SIZE = 32 # 每个BATCH数据大小
  • self.TOP_NUM = 4 # 测试时需求前几的Acc
  • self.NUM_WORKERS = 4 # pytorch用几个线程工作读数据
  • self.IS_TRAINING = True # 选择模式“训练”或“测试”
  • self.ENSEMBLE_TEST = False # 测试模式下是否需要模型融合测试
  • self.LEARNING_RATE = 0.001 # 学习率
  • self.RE_TRAIN = False # 本次训练是否要加载之前训练好的模型
  • self.TEST_POSITION = 'xxx Server' # 本次训练运行在哪里

模型共享参数设置

  • self.OPTIMIZER = 'Adam' # 优化器选择
  • self.USE_CHAR = True # 使用char还是词
  • self.USE_WORD2VEC = True # 使用词语时是否使用词向量
  • self.NUM_CLASSES = 1890 # 本次训练的分类数
  • self.EMBEDDING_DIM = 512 # 词嵌入的维度
  • self.VOCAB_SIZE = 20029 # 生成的词库大小
  • self.CHAR_SIZE = 3403 # 生成的字库大小

TextCNN模型设置

  • self.TITLE_DIM = 200 # 中间层维度
  • self.SENT_LEN = 20 # 句子截断长度
  • self.LINER_HID_SIZE = 2000 # fc中间层维度
  • self.KERNEL_SIZE = [1,2,3,4,5] # 卷积核大小

TextCNNInc模型设置

self.SIN_KER_SIZE = [1, 3] # 单层卷积卷积核大小 self.DOU_KER_SIZE = [(1, 3), (3, 5)] # 双层卷积卷积核大小。元组内第一项为第一层 # conv的核尺寸,第二项为第二层conv的核尺寸,