擅长:python、mysql、java
<p>附加参数通过<code>kedro_cli.py</code>中的<code>load_context(Path.cwd(), env=env, extra_params=params)</code>传递到<code>KedroContext</code>对象。在这里,您可以看到一个名为<code>_split_params</code>的回调(受保护)函数,它在<code>:</code>上拆分键值对</p>
<p>这个<code>_split_params</code>首先拆分逗号上的字符串(以获得多个参数),然后拆分冒号上的字符串。实际上,添加一个关于传递到<code>extra_params</code>中的内容的打印/日志语句将显示如下内容:</p>
<pre class="lang-py prettyprint-override"><code>{'train.batch_size': 64, 'train.epochs': 50}
</code></pre>
<p>我认为你有几个选择:</p>
<ol>
<li>取消对参数的嵌套。这样,您将正确覆盖它们</李>
<li>将自定义逻辑添加到<code>kedro_cli.py</code>中的<code>_split_params</code>中,以在<code>.</code>字符上创建一个嵌套字典,该字符被传递到上述func中。我认为可以重用很多现有的逻辑</李>
</ol>
<p>注意:这是在^{<cd11>上测试的</p>
<p>NB2:<code>kedro</code>拆分嵌套参数的方法是使用<code>context.py</code>中的<code>_get_feed_dict</code>和<code>_add_param_to_feed_dict</code>函数。具体来说,<code>_add_param_to_feed_dict</code>是一个递归函数,它将字典解包并格式化为<code>"{}.{}".format(key, value)</code>。在我看来,你可以从这里使用逻辑</p>