能否使用allennlp.modules.elmo.Elmo从零训练ELMo模型及医疗场景方案
问题1解答
你需要先训练双向语言模型得到.hdf5权重再传入对应模块,不能直接用allennlp.modules.elmo.Elmo从零训练ELMo模型。这个模块本身是为加载预训练权重做推理设计的,你之前用空.hdf5文件跑通的只是初始化流程,没有实际加载有效权重,用这种方式训练得到的参数不符合标准ELMo的结构,后续也没法正常复用。
问题2解答
对你来说最优的训练方案是你还没尝试的、基于allennlp模板修改Model和DatasetReader的方案:
- 你之前运行
allennlp train ...报错的原因是配置文件指定的GPU编号和实际可用设备不匹配,直接打开配置文件找到trainer配置段的cuda_device参数,把值从1改成0就能解决。 - 自定义DatasetReader完全可以直接读取你的csv文件,逐行读取需要的文本字段做预处理即可,不需要把全量csv转成txt文件,不会浪费内存,也能适配MIMIC-III的单文件存储格式。
- 废弃TF1版本的bilm-tf方案即可,该版本早已停止维护,适配新CUDA环境的成本极高,完全没必要投入精力解决相关报错。
内容的提问来源于stack exchange,提问作者Goh Jia Yi
相关产品推荐
相关产品推荐

