![](/img/trans.png)
[英]How to use !FindInMap in !Sub | userdata section of Cloudformation
[英]How to make use of `template` section in kurfile properly?
問題
我嘗試通過將template
部分添加到mnist.yml
來嘗試使用template
。
我的嘗試是在這里 :( mnist.yml
和mnist-defaults.yml
其余部分mnist.yml
觸及),mnist的原始文件可以在這里找到
回應亞當的回答如下:
更新到kur 0.5.2之后,代碼就在這里, mnist-defaults.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_cnn_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:
^
這里的問題是,即使YAML規范禁止這樣做,PyYAML(Kur使用的YAML解析器)也會默默地忽略重復的YAML密鑰。 實際上,該錯誤報告是8年前提交的,但尚未得到解決(也許是因為它可能會破壞依賴於此行為的舊代碼,但我不確定)。
由於您說的是“其余mnist.yml ...未受影響”,因此我假設您在mnist.yml
的底部有一個include
鍵,因為現成的Kur示例的最后一行是:
include: mnist-defaults.yml
這與mnist.yml
文件的第一行沖突,該文件現在包含重復的include
鍵。 相反,您應該替換兩個include
部分:
include:
- mnist-defaults.yml
- mnist_cnn_helper.yml
這應該可以在Kur 0.5.2或更高版本中按預期工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.