Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 试图在microsoft CNTK中创建一个极其简单的函数,但得到错误的结果_Python_Cntk - Fatal编程技术网

Python 试图在microsoft CNTK中创建一个极其简单的函数,但得到错误的结果

Python 试图在microsoft CNTK中创建一个极其简单的函数,但得到错误的结果,python,cntk,Python,Cntk,我没有从下面的代码中得到我期望从CNTK得到的正确答案。我做错什么了吗 import cntk as C import numpy as np def custom(a, b, c): return a * 0 + c * 0 + b np.set_printoptions(edgeitems=1000, linewidth=1000) a = C.input_variable(3) b = C.input_variable(3) c = C.input_variable(3)

我没有从下面的代码中得到我期望从CNTK得到的正确答案。我做错什么了吗

import cntk as C
import numpy as np

def custom(a, b, c):
    return a * 0 + c * 0 + b


np.set_printoptions(edgeitems=1000, linewidth=1000)

a = C.input_variable(3)
b = C.input_variable(3)
c = C.input_variable(3)

f = custom(a, b, c)

q = np.zeros((1, 3)).astype(np.float32) + 0.5
w = np.zeros((1, 3)).astype(np.float32) + 1.0
e = np.zeros((1, 3)).astype(np.float32) + 1.5

print()
print("a:", q)
print("b:", w)
print("c:", e)
print(">>>>>>>>>>>>>>>>>>>>>")
results = f(q, w, e)
print(results)
我要求返回结果

[[1.0, 1.0, 1.0]]
但是我有

[[1.5, 1.5, 1.5]]
相反。 有人能复制这个吗?复制和粘贴应无错误地运行

编辑:我意识到改变变量b在函数中的位置也会改变它的值。

您需要使用
eval()
来获得变量的计算结果


因此,将
results=f(q,w,e)
行替换为
results=f.eval({a:q,b:w,c:e})
将得到预期的结果。

我去cntk的github发布相同的问题。我想我在这里分享答案

变量绑定顺序不能保证,因为参与图构造的变量a、b、c的顺序与a、b、c传递到函数的顺序不同