如何正确使用kurfile中的`template`部分?

时间:2017-03-28 07:19:55

标签: yaml deep-learning

问题

我试图通过向@keyframes slidy { 0% { left: 0%; } 20% { left: 0%; } 25% { left: -100%; } 45% { left: -100%; } 50% { left: -200%; } 70% { left: -200%; } 75% { left: -300%; } 95% { left: -300%; } 100% { left: -400%; } } body { margin: 0; } div#slider { overflow: hidden; } div#slider figure img { width: 12.5%; float: left; } div#slider figure { position: relative; width: 800%; margin: 0; left: 0; text-align: left; font-size: 0; animation: 30s slidy infinite; } 添加template部分来试验template的使用情况。

我试图模仿下面的一个简短示例: enter image description here

我的尝试在这里 :(其他mnist.ymlmnist.yml未触动),mnist的原始文件为found here

enter image description here

然后我收到以下错误: enter image description here

对亚当的回答如下:

更新为kur 0.5.2后,代码在此处,mnist-defaults.yml未触及:

enter image description here

mnist.yml

mnist-defaults.yml

mnist_cnn_block.yml

---
include:
  - mnist-defaults.yml
  - mnist_cnn_helper.yml

settings:
  cnn:
    k: 64
    s: 2

model:
  - input: images
  # - convolution:
  #     kernels: 64
  #     size: [2, 2]
  - cnn_block: "{{cnn}}"
  - activation: relu
  - flatten:
  - dense: 10
  - activation: softmax
    name: labels

train:
  data:
    - mnist:
        images:
          url: "http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz"
        labels:
          url: "http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz"
...

以下是错误消息

---
templates:
  cnn_block:
          - convolution:
        kernels: "{{k}}"
        size: "{{[s, s]}}"
...

1 个答案:

答案 0 :(得分:1)

这里的问题是PyYAML(Kur使用的YAML解析器)默默地忽略重复的YAML键,即使YAML规范禁止这样做。实际上,bug report是在8年前提交的,但尚未得到解决(也许是因为它可能会破坏依赖于此行为的遗留代码,但我不确定)。

既然你说过"其余的mnist.yml ...... [没有动过],"我假设你在include的底部有一个mnist.yml键,因为现成的Kur示例的最后一行是:

include: mnist-defaults.yml

这与mnist.yml文件的第一行冲突,后者现在包含重复的include密钥。相反,您应该做的是替换单个include部分:

include:
  - mnist-defaults.yml
  - mnist_cnn_helper.yml

这应该在Kur 0.5.2或更新版本中按预期工作。