Pylearn2之YAML

来源:互联网 发布:七星彩庄家辅助软件 编辑:程序博客网 时间:2024/05/29 08:59

最近在看GAN的源码,源码是使用python编写的,中间涉及到了pylearn的内容,由于之前从来都没有接触过这部分内容,所以读起来还是很吃力的,不过应该还是会在后面学习一下这部分的内容,以后的内容中应该会使用到。

首先看一下yaml的内容,官方解释为是一种置标语言,无论是对机器或人而言都是便于阅读理解的。下面的内容是从deeplearning上面摘下来的,感兴趣的同学也可以访问原网站点击打开链接(包含下面讲解的内容)以及点击打开链接(一些库、模型等说明文档),这篇就主要介绍一下YAML

使用!obj对对象进行实例化,通常的语法为 !obj:<package>[.<subpackage>]*.<module>.<object>,举个栗子,下面就可以创建一个AutoEncoder的实例,以784个可见单元和100个隐藏单元为参数,标准差为0.2。!obj实现的功能有两个,可以递归的导入所有子包,直到导入最终模型。

可以使用load方法将模块进行导入。如下例,假定模型存储在example.yaml中,使用yaml_parse.load方法就可以已有模型进行导入

anchor&reference,这里不知道应该怎么翻译了,所以就直接把词摆在这里好了。主要实现的功能是可以避免重复的代码,如下例,所实现的功能是首先通过&nvis将可见单元nvis的熟练变为增广矩阵;随后通过使用*nvis指定隐藏单元的数量。通过使用*nvis能够避免在两个位置修改代码

使用!import动态导入。同!obj功能类似,但是它不会创建实例,只会返回一个指针。

通过使用Pickl导入文件,和load功能函数类似,实现过程见下图

通过对这些tag进行组合即可得到一个比较完整的结构了

从结构上来看,格式还是非常规整,语法结构也清晰易懂。后续部分继续学习