如何从头开始构建张量流模型?

时间:2018-03-13 11:21:17

标签: tensorflow agile extreme-programming

很容易看到复杂的(比如建造图形几百行或更多)张量流模型。

我无法想象这样的模型是一次性编写的,然后进行调试。它必须以某种方式逐渐建立。

但是,如果模型没有完全完成,则无法进行培训/测试,因为培训和测试需要整个模型。如何在构建模型的每一步测试模型?

为了使问题更具体,在这个具体的例子中,如何在完全编写模型之前单独测试模型中的每个组件,例如字符嵌入,单词嵌入代码?

https://github.com/guillaumegenthial/sequence_tagging/blob/master/model/ner_model.py

1 个答案:

答案 0 :(得分:0)

你说对于调试/理解模型的过程有时不直观。有了这个说法,有一些一般的经验法则可以帮助你构建一个模型,让它自信地做你想做的事。

  1. 获取要编译的模型。这意味着每个图层的输出形状都与每个后续图层的输入形状相匹配,并且通常可以很好地证明模型构建过程正朝着您想要的方向发展。
  2. 通过sess.run()打印每个值。将所有权重初始化为任意简单的值,将偏差初始化为0,没有激活/正则化,并打印某些图层计算的结果。这些结果很容易在纸上进行追踪,这是一个很好的双重检查,可以让你得到你期望的结果。
  3. 给模特带来非常简单的玩具问题。任务非常简单,您的深度学习架构可以立即学习必要的功能。如果它不起作用,你的调试就会变得非常容易,因为玩具问题可能会出现问题。
  4. 您可以在任何部分网络上运行优化。它没有必要有意义。制作一个最小化器,将隐藏图层的值设置为0,然后不进行任何图形计算。这只是一种双重检查渐变可以正确流过图表的方法。如果您遇到的错误(例如并非每个变量都被初始化或图表中的不可区分操作),这是一种简单的方法来跟踪它们。
  5. 希望那些帮助!肯定会有更多,但那些是我使用的。