自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 知识图到文本的生成——拾叁

2021SC@SDUSC 工作总结 整个知识图到文本生成的算法的关键代码和核心代码,已经由我和两个队友全部分析完毕。我们在项目初期开会商讨,认为整个算法大致分为三个板块:训练→生成→评估。对应的源代码为train.py→generator.py→eval.py。三个代码需要分别运行,才能得到最终结果。 我主要负责分析数据集的训练,总结一下代码的逻辑和脉络,结合论文中提到的: “To effect our study, we use a collection of abstracts from a c

2021-12-27 15:46:38 1058

原创 知识图到文本的生成——拾贰

2021SC@SDUSC 我们继续分析evaluate()函数的剩余的关键代码。 final_scores = self.score(ref, hypo) 这里的final_scores保存的是最终的评价得分,根据上篇博客提到的三种评价方法。这里调用了score函数,它是Evaluate的类函数,代码如下: def score(self, ref, hypo): final_scores = {} for scorer, method in self.s

2021-12-26 21:19:26 717

原创 知识图到文本的生成——拾壹

2021SC@SDUSC 之前的十篇博客,我对train.py中的核心代码和关键代码进行了详细分析,可以得知,它主要是用于对数据集的训练,运行train.py的部分结果如下: 接下来我们看对数据集进行评价的代码:eval.py。简单说一下它是用来干嘛的。就是说,我们train完训练集之后,生成文本,也就是generate的过程。在生成之后,需要对生成的文本进行评估,这里也就是eval.py的内容,里面的类、函数和各种操作都是为了对文本进行评估。 首先先看main函数: with open.

2021-12-26 19:54:35 600

原创 知识图到文本的生成——拾

2021SC@SDUSC 我们继续看main(args)的那个循环。 for e in range(starte,args.epochs): print("epoch ",e,"lr",o.param_groups[0]['lr']) train(m,o,ds,args) vloss = evaluate(m,ds,args) if args.lrwarm: update_lr(o,args,e) print("Saving model")

2021-12-25 21:12:56 1310

原创 知识图到文本的生成——玖

2021SC@SDUSC 我们继续看train.py中的train()函数,上篇博客分析到了第二层循环,现在继续。 tgt = b.tgt[:,1:].contiguous().view(-1).to(args.device) l = F.nll_loss(p.contiguous().view(-1,p.size(2)),tgt,ignore_index=1) .contiguous()函数在第八篇博客中已经分析过,此处不再赘述。 if args.cl: z = z

2021-12-25 18:26:37 487

原创 知识图到文本的生成——捌

2021SC@SDUSC 我们继续分析train.py,上次提到了train()函数,是train.py中的一个核心函数,它主要用于对数据集进行训练和测试。 首先看看它的四个参数以及调用时传的实际参数: def train(m,o,ds,args): train(m,o,ds,args) m是一个model类的模型,model类在之前已详细分析过。 o是main函数里,通过对m的参数、权重和偏置,和学习率以及0.9的冲量调用了torch.optim.SGD函数的结果。 ds是数据集data

2021-12-25 16:34:49 197

原创 知识图到文本的生成——柒

2021SC@SDUSC 上次我们分析了model类中的类定义函数,了解了这个类各个参数的意思,接下来我们继续分析train.py。 m = m.to(args.device) m就是一个model类,这是将m加载到设备device上。 if args.ckpt: cpt = torch.load(args.ckpt) m.load_state_dict(cpt) starte = int(args.ckpt.split("/")[-1].split(".")[0])

2021-12-10 23:44:25 1239

原创 知识图到文本的生成——陆

2021SC@SDUSC mkiters函数也是dataset类中的一个重要的类函数,我的队友已经在她的博客中详细分析过这个函数,此处不再赘述。 def mktestset(self, args): path = args.path.replace("train",'test') fields=self.fields ds = data.TabularDataset(path=path, format='tsv',fields=fields) ds.fields["

2021-12-05 17:28:24 351

原创 知识图到文本的生成——伍

2021SC@SDUSC

2021-11-22 20:28:04 615

原创 知识图到文本的生成——肆

2021SC@SDUSC 我们继续分析Field类中的其他类函数。首先看preprocess()函数。 def preprocess(self, x): if self.sequential and isinstance(x, str): x = self.tokenize(x.rstrip('\n')) if self.lower: x = Pipeline(str.lower)(x) if se

2021-11-15 18:58:43 1405

原创 知识图到文本的生成——叁

2021SC@SDUSC 上篇博客我们提到了RawField类除了__init__函数外,还内含了两个函数,分别为preprocess(self, x)和process(self, batch, *args, **kwargs)作为数据的预处理函数和处理函数。 首先我们先来看preprocess函数。 def preprocess(self, x): if self.preprocessing is not None: return self.prep

2021-10-26 15:20:07 279

原创 知识图到文本的生成——贰

2021SC@SDUSC 总体的代码结构如下: 经过我们的第二次小组会议、第三次小组会议讨论后,我们确定了关键代码为eval.py、generator.py、lastDataset.py、pargs.py、train.py、vectorize.py。而在第一次讨论后,我负责分析的关键代码为train.py、lastDataset.py、pargs.py,而此篇主要分析train.py中的部分代码。 整个train.py中共有4个函数,分别为update_lr、train、evaluate、ma

2021-10-18 00:11:42 268

原创 知识图到文本的生成——壹

2021SC@SDUSC 我们的研究课题是《知识图到文本的生成》(原文:《Text Generation from Knowledge Graphs with Graph Transformers》),首先我们组在下载好代码和论文后,进行了论文的阅读。 文章提出了一个新的图转换编码器,该编码器成功地将序列变换器应用于图结构化的输入,展示了IE输出如何形成为一个连接的、未标记的图形,以用于基于注意力的编码器。提供了与科学为本匹配的大的知识图谱数据集。 阅读完成之后,我们在下载后的代码中了解到了该..

2021-09-30 00:47:20 396

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除