Yaml 如何正确使用文件中的“template”部分?

Yaml 如何正确使用文件中的“template”部分?,yaml,deep-learning,Yaml,Deep Learning,问题 我尝试使用template,在mnist.yml中添加template部分 我这样做是为了模仿下面的一个简短示例: 我的尝试在这里:(剩余的mnist.yml和mnist defaults.yml未被触及),mnist的原始文件将被删除 然后我得到了以下错误: 以下是对亚当回答的回应: 更新到kur 0.5.2后,代码如下,mnist默认值。yml未被触及: mnist.yml: --- include: - mnist-defaults.yml - mnist_cnn_

问题

我尝试使用
template
,在
mnist.yml
中添加
template
部分

我这样做是为了模仿下面的一个简短示例:

我的尝试在这里:(剩余的
mnist.yml
mnist defaults.yml
未被触及),mnist的原始文件将被删除

然后我得到了以下错误:


以下是对亚当回答的回应:

更新到kur 0.5.2后,代码如下,
mnist默认值。yml
未被触及:

mnist.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"
...
mnist\u cnn\u block.yml

---
templates:
  cnn_block:
          - convolution:
        kernels: "{{k}}"
        size: "{{[s, s]}}"
...
> (dlnd-tf-lab)  ->kur dump mnist.yml
[ERROR 2017-03-29 09:02:11,789 kur.kurfile:734] Failed to read file: mnist_cnn_helper.yml. Check your syntax.
Traceback (most recent call last):
  File "/Users/Natsume/Downloads/kur_road/kur/kur/kurfile.py", line 731, in parse_source
    data = Reader.read_file(expanded)
  File "/Users/Natsume/Downloads/kur_road/kur/kur/reader/reader.py", line 109, in read_file
    return reader.read(fh.read())
  File "/Users/Natsume/Downloads/kur_road/kur/kur/reader/yaml_reader.py", line 56, in read
    return yaml.load(data)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/__init__.py", line 72, in load
    return loader.get_single_data()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/constructor.py", line 35, in get_single_data
    node = self.get_single_node()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 36, in get_single_node
    document = self.compose_document()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 64, in compose_node
    if self.check_event(AliasEvent):
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/parser.py", line 449, in parse_block_mapping_value
    if not self.check_token(KeyToken, ValueToken, BlockEndToken):
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/scanner.py", line 116, in check_token
    self.fetch_more_tokens()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/scanner.py", line 257, in fetch_more_tokens
    self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 4, column 1:
              - convolution:
    ^
Traceback (most recent call last):
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/bin/kur", line 11, in <module>
    load_entry_point('kur', 'console_scripts', 'kur')()
  File "/Users/Natsume/Downloads/kur_road/kur/kur/__main__.py", line 382, in main
    sys.exit(args.func(args) or 0)
  File "/Users/Natsume/Downloads/kur_road/kur/kur/__main__.py", line 53, in dump
    spec = parse_kurfile(args.kurfile, args.engine)
  File "/Users/Natsume/Downloads/kur_road/kur/kur/__main__.py", line 45, in parse_kurfile
    spec = Kurfile(filename, engine)
  File "/Users/Natsume/Downloads/kur_road/kur/kur/kurfile.py", line 69, in __init__
    context=None
  File "/Users/Natsume/Downloads/kur_road/kur/kur/kurfile.py", line 754, in parse_source
    loaded=loaded
  File "/Users/Natsume/Downloads/kur_road/kur/kur/kurfile.py", line 731, in parse_source
    data = Reader.read_file(expanded)
  File "/Users/Natsume/Downloads/kur_road/kur/kur/reader/reader.py", line 109, in read_file
    return reader.read(fh.read())
  File "/Users/Natsume/Downloads/kur_road/kur/kur/reader/yaml_reader.py", line 56, in read
    return yaml.load(data)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/__init__.py", line 72, in load
    return loader.get_single_data()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/constructor.py", line 35, in get_single_data
    node = self.get_single_node()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 36, in get_single_node
    document = self.compose_document()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 64, in compose_node
    if self.check_event(AliasEvent):
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/parser.py", line 449, in parse_block_mapping_value
    if not self.check_token(KeyToken, ValueToken, BlockEndToken):
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/scanner.py", line 116, in check_token
    self.fetch_more_tokens()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/scanner.py", line 257, in fetch_more_tokens
    self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 4, column 1:
              - convolution:
    ^
以下是错误消息

---
templates:
  cnn_block:
          - convolution:
        kernels: "{{k}}"
        size: "{{[s, s]}}"
...
> (dlnd-tf-lab)  ->kur dump mnist.yml
[ERROR 2017-03-29 09:02:11,789 kur.kurfile:734] Failed to read file: mnist_cnn_helper.yml. Check your syntax.
Traceback (most recent call last):
  File "/Users/Natsume/Downloads/kur_road/kur/kur/kurfile.py", line 731, in parse_source
    data = Reader.read_file(expanded)
  File "/Users/Natsume/Downloads/kur_road/kur/kur/reader/reader.py", line 109, in read_file
    return reader.read(fh.read())
  File "/Users/Natsume/Downloads/kur_road/kur/kur/reader/yaml_reader.py", line 56, in read
    return yaml.load(data)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/__init__.py", line 72, in load
    return loader.get_single_data()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/constructor.py", line 35, in get_single_data
    node = self.get_single_node()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 36, in get_single_node
    document = self.compose_document()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 64, in compose_node
    if self.check_event(AliasEvent):
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/parser.py", line 449, in parse_block_mapping_value
    if not self.check_token(KeyToken, ValueToken, BlockEndToken):
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/scanner.py", line 116, in check_token
    self.fetch_more_tokens()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/scanner.py", line 257, in fetch_more_tokens
    self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 4, column 1:
              - convolution:
    ^
Traceback (most recent call last):
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/bin/kur", line 11, in <module>
    load_entry_point('kur', 'console_scripts', 'kur')()
  File "/Users/Natsume/Downloads/kur_road/kur/kur/__main__.py", line 382, in main
    sys.exit(args.func(args) or 0)
  File "/Users/Natsume/Downloads/kur_road/kur/kur/__main__.py", line 53, in dump
    spec = parse_kurfile(args.kurfile, args.engine)
  File "/Users/Natsume/Downloads/kur_road/kur/kur/__main__.py", line 45, in parse_kurfile
    spec = Kurfile(filename, engine)
  File "/Users/Natsume/Downloads/kur_road/kur/kur/kurfile.py", line 69, in __init__
    context=None
  File "/Users/Natsume/Downloads/kur_road/kur/kur/kurfile.py", line 754, in parse_source
    loaded=loaded
  File "/Users/Natsume/Downloads/kur_road/kur/kur/kurfile.py", line 731, in parse_source
    data = Reader.read_file(expanded)
  File "/Users/Natsume/Downloads/kur_road/kur/kur/reader/reader.py", line 109, in read_file
    return reader.read(fh.read())
  File "/Users/Natsume/Downloads/kur_road/kur/kur/reader/yaml_reader.py", line 56, in read
    return yaml.load(data)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/__init__.py", line 72, in load
    return loader.get_single_data()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/constructor.py", line 35, in get_single_data
    node = self.get_single_node()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 36, in get_single_node
    document = self.compose_document()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/composer.py", line 64, in compose_node
    if self.check_event(AliasEvent):
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/parser.py", line 449, in parse_block_mapping_value
    if not self.check_token(KeyToken, ValueToken, BlockEndToken):
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/scanner.py", line 116, in check_token
    self.fetch_more_tokens()
  File "/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/scanner.py", line 257, in fetch_more_tokens
    self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 4, column 1:
              - convolution:
    ^
(dlnd tf lab)->kur dump mnist.yml
[错误2017-03-29 09:02:11789 kur.kurfile:734]无法读取文件:mnist_cnn_helper.yml。检查语法。
回溯(最近一次呼叫最后一次):
文件“/Users/Natsume/Downloads/kur_road/kur/kur/kurfile.py”,第731行,在parse_source中
数据=读卡器.read\u文件(扩展)
文件“/Users/Natsume/Downloads/kur_road/kur/kur/reader/reader.py”,第109行,在read_文件中
返回reader.read(fh.read())
文件“/Users/Natsume/Downloads/kur_road/kur/kur/reader/yaml_reader.py”,第56行,已读
返回yaml.load(数据)
文件“/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/__-init___.py”,第72行,已加载
返回加载器。获取单个数据()
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/constructor.py”,第35行,在get_single_数据中
node=self.get\u single\u node()
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/composer.py”,第36行,在get_single_节点中
document=self.compose_document()
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/composer.py”,第55行,在compose_文档中
node=self.compose\u节点(无,无)
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/composer.py”,第84行,在compose_节点中
node=self.compose\u mapping\u节点(锚定)
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/composer.py”,第133行,在compose\u mapping\u节点中
item\u value=self.compose\u节点(节点,item\u键)
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/composer.py”,第84行,在compose_节点中
node=self.compose\u mapping\u节点(锚定)
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/composer.py”,第133行,在compose\u mapping\u节点中
item\u value=self.compose\u节点(节点,item\u键)
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/composer.py”,第64行,在compose_节点中
如果自检查事件(别名事件):
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/parser.py”,第98行,在check_事件中
self.current_event=self.state()
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/parser.py”,第449行,在parse\u block\u mapping\u值中
如果不是self.check_令牌(KeyToken、ValueToken、BlockEndToken):
文件“/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/scanner.py”,第116行,在check_-token中
self.fetch\u更多\u令牌()
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/scanner.py”,第257行,在获取更多令牌中
self.get_mark())
yaml.scanner.ScannerError:扫描下一个令牌时
找到无法启动任何令牌的字符'\t'
在“”第4行第1列中:
-卷积:
^
回溯(最近一次呼叫最后一次):
文件“/Users/Natsume/miniconda2/envs/dlnd-tf-lab/bin/kur”,第11行,在
加载入口点('kur','console_scripts','kur')()
文件“/Users/Natsume/Downloads/kur_road/kur/kur/_main__.py”,第382行,main中
系统退出(args.func(args)或0)
文件“/Users/Natsume/Downloads/kur_road/kur/kur/_main__.py”,第53行,在转储文件中
spec=parse_kurfile(args.kurfile,args.engine)
文件“/Users/Natsume/Downloads/kur_-road/kur/kur/__-main___;.py”,第45行,在parse_-kur文件中
spec=Kurfile(文件名,引擎)
文件“/Users/Natsume/Downloads/kur_-road/kur/kur/kurfile.py”,第69行,在__
上下文=无
文件“/Users/Natsume/Downloads/kur_road/kur/kur/kurfile.py”,第754行,在parse_source中
加载的
文件“/Users/Natsume/Downloads/kur_road/kur/kur/kurfile.py”,第731行,在parse_source中
数据=读卡器.read\u文件(扩展)
文件“/Users/Natsume/Downloads/kur_road/kur/kur/reader/reader.py”,第109行,在read_文件中
返回reader.read(fh.read())
文件“/Users/Natsume/Downloads/kur_road/kur/kur/reader/yaml_reader.py”,第56行,已读
返回yaml.load(数据)
文件“/Users/Natsume/miniconda2/envs/dlnd-tf-lab/lib/python3.5/site-packages/yaml/__-init___.py”,第72行,已加载
返回加载器。获取单个数据()
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/constructor.py”,第35行,在get_single_数据中
node=self.get\u single\u node()
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/composer.py”,第36行,在get_single_节点中
document=self.compose_document()
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/composer.py”,第55行,在compose_文档中
node=self.compose\u节点(无,无)
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/composer.py”,第84行,在compose_节点中
node=self.compose\u mapping\u节点(锚定)
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/composer.py”,第133行,在compose\u mapping\u节点中
item\u value=self.compose\u节点(节点,item\u键)
文件“/Users/Natsume/miniconda2/envs/dlnd tf lab/lib/python3.5/site packages/yaml/composer.py”,第84行,在compose_节点中
node=self.compose\u mapping\u节点(锚定)
文件“/用户/Na