2017-03-28 27 views
0

Iはmnist.ymltemplateセクションを追加することによって、templateの使用に実験を試みた問題kurfileで `template`セクションを正しく使う方法は?

私はそれが以下の短い例を模倣しようとしなかった

enter image description here

私の試みはここにある:(mnist.ymlの休息とmnist-defaults.ymlは変更されません)、mnistの元のファイルがfound here

しますenter image description here

次に、次のエラーが表示されます。 enter image description here


以下アダムの答えへの応答:

0.5.2をKURするように更新した後

、コードはここにある、mnist-defaults.ymlはそのままです:

enter image description here

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" 
... 

mn ist_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: 
    ^
+0

スクリーンショットを(書式付きの)テキストに置き換えてください。 – Anthon

+0

私は真剣にコードフォーマットを何度も使用しようとしましたが、それは混乱でした。私は '{}'ボタンを使い、またインデントしようとしましたが、私は '' '' ''を使用しようとしましたが、まったく助けませんでした。私もコード形式を使用するためのドキュメントを探しましたが、私の場合は助けにならないようです。私は画像を使用する以外に選択肢はありません。 – Daniel

+0

これで動作します。以前は、箇条書きテキストの下にコードを追加すると、コードフォーマットが混乱していました。 – Daniel

答えて

1

ここでの問題はPyYAMLと(クアが使用するYAMLパーサは)黙っても、このかかわらず、重複YAMLキーを無視するということですYAML仕様では禁止されています。実際、bug reportは8年前に提出されましたが、まだ対処されていません(これはおそらくこの動作に依存するレガシーコードを破る可能性があるためですが、私は確信していません)。

あなたは「mnist.ymlの残りの部分は...そのまま、[される]」私は、あなたがmnist.ymlの下部にincludeキーを持っていることを前提とすることを言ったので、既製クアルの最後の行から例は次のとおりです。これは今の重複includeキーが含まれているあなたのmnist.ymlファイルの最初の行と競合している

include: mnist-defaults.yml 

。クア0.5.2以降で期待どおり

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

これは動作するはずです:代わりに、何をやるべきことは、単一のincludeセクションの両方を交換です。

+0

あなたの返信ありがとう!私はkurを0.5.2に更新し、提案したように変更を加えましたが、まだ何らかのエラーがあります。上記の完全なコードとエラーを質問セクションに貼り付けました。コメントに画像を貼り付けることができないようです。 – Daniel

+0

編集したコードには2つの問題があります。 Kurが文句を言っているのは 'mnist_cnn_helper.yml' 3行目のインデント問題です。ここで' - convolution'は間違ったレベルに字下げされています(あなたのエディタではタブの問題でしょうか? 2番目の問題は 'mnist_cnn_helper.yml'をインクルードすることですが、編集した質問に' mnist_cnn_block.yml'という名前のファイルがあるので、ファイル名が一貫していることを確認してください。 –

+0

インデントを修正しました。うまくいきました。 – Daniel

関連する問題