# DPCNN-TextCNN-Pytorch-Inception **Repository Path**: jockeyyan/DPCNN-TextCNN-Pytorch-Inception ## Basic Information - **Project Name**: DPCNN-TextCNN-Pytorch-Inception - **Description**: DPCNN-TextCNN-Pytorch-Inception for text classification, cloned from github and fix some bugs to train - **Primary Language**: Python - **License**: Not specified - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-11-01 - **Last Updated**: 2022-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 背景 * 本项目为PyTorch版本的DPCNN及其改进版本,来自于github。 ## 声明 * 本项目主要为针对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的核尺寸,