在这一刻,我正在努力不要只是试图转换这个(来自https://cntk.ai/pythondocs/gettingstarted.html#overview-and-first-run)
cntk.minus([1, 2, 3], [4, 5, 6]).eval()
它给出了“array([ - 3。, - 。3,-3。],dtype = float32)”
至
public static void Test1()
{
var device = DeviceDescriptor.GPUDevice(0);
var v1 = CNTKLib.InputVariable(new int[] { 1 }, DataType.Float, "e1");
var v2 = CNTKLib.InputVariable(new int[] { 1 }, DataType.Float, "e2");
var o1 = CNTKLib.InputVariable(new int[] { 1 }, DataType.Float, "o1");
var o2 = CNTKLib.InputVariable(new int[] { 1 }, DataType.Float, "o2");
var features1 = new float[] { 1, 2, 3 };
var features2 = new float[] { 4, 5, 6 };
var vv1 = Value.CreateBatch<float>(new int[] { 1 }, features1, device);
var vv2 = Value.CreateBatch<float>(new int[] { 1 }, features2, device);
var d1 = new Dictionary<Variable, Value>()
{
{ v1, vv1 },
{ v2, vv2 },
};
var d2 = new Dictionary<Variable, Value>();
d2.Add(o1, null);
var fun = CNTK.CNTKLib.Minus(v1, v2);
fun.Evaluate(d1, d2, device);
}
这给出了下一个错误:
“1个必需参数的值'输入('o1',[1],[,#])',请求的输出'输入('o1',[1],[,#])'取决于,尚未提供“
我无法理解c#的文档是如此空洞以及如何在python中如此简单。
这同样适用于下一个例子
import numpy as np
x = cntk.input_variable(2)
y = cntk.input_variable(2)
x0 = np.asarray([[2., 1.]], dtype=np.float32)
y0 = np.asarray([[4., 6.]], dtype=np.float32)
cntk.squared_error(x, y).eval({x:x0, y:y0})
->array([ 29.], dtype=float32)
numpy数组只是完全解析为字典。我试图在C#中做同样的事情(几乎没有遵循https://github.com/Microsoft/CNTK/blob/master/Examples/TrainingCSharp/Common/LogisticRegression.cs中的例子),但同样的错误。
有谁能帮我弄清楚我错过了什么?也许可以指出一些文档,其中包含在c#中使用api的基本示例。
谢谢!!
你可能想看看this github repo。它可能包含您需要的一切。