python - CNTK:条件执行

标签 python python-3.x neural-network cntk

是否可以在 CNTK 中创建一个“条件”网络,并根据另一个输入变量仅将其应用于其中一个输入? 请参阅以下代码:

a_in = ct.input_variable(shape=[16,16])
b_in = ct.input_variable(shape=[16,16])
flag = ct.input_variable(shape=[])

a_branch = ct.layers.Sequential([...])
b_branch = ct.layers.Sequential([...])

sel_branch = ct.element_select(flag, a_branch, b_branch)

out = sel_branch(a_in, b_in)

但是,这不起作用,因为 sel_branch 需要 3 个参数,而不是 a_branchb_branch 请求的参数(这完全是正确,因为我在这里以错误的方式使用 element_select)

请记住,目标是避免执行两个分支,

最佳答案

答案是否定的,目前CNTK中没有条件执行。一般情况是,flag 是一个向量/张量,它的一些元素为 0,其他元素为 1。当所有元素具有相同的值时,有一个明显的优化,但没有实现。然而,即使它被实现,sel_branch 的签名仍然是它需要 3 个参数,因为这是一个“编译时”属性,而上述优化只能在运行时确定。即使在您的情况下,当 flag 是标量时,它也可能在一个批处理中为 0,而在另一个批处理中为 1,并且 sel_branch 的签名不能在批处理之间更改。

关于python - CNTK:条件执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48642726/

相关文章:

python - 使用相对 URL

python - tensorflow.python.framework.errors_impl.NotFoundError : Failed to create a NewWriteableFile: 错误

python - 预处理 csv 文件以与 tflearn 一起使用

tensorflow - Keras 视频帧预测的输出维度低于输入维度

python - 使用 Python 将多个 URL 中的不同变量抓取到一个 CSV 文件中

python - Nginx、Flask、Gunicorn 502 错误

python - 有没有办法防止解析从另一个页面重定向的响应?

python - 如何使 Python 字符串版本不可知

windows - Scapy 在 Windows 7 64 位 Python 3.5 上安装失败

python - 激活或权重的丢失