使用c#跟随python示例的CNTK基本操作会出错

问题描述 投票:0回答:1

在这一刻,我正在努力不要只是试图转换这个(来自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的基本示例。

谢谢!!

c# function evaluation cntk
1个回答
0
投票

你可能想看看this github repo。它可能包含您需要的一切。

© www.soinside.com 2019 - 2024. All rights reserved.