【问题标题】:CNTK C# - Connect output to specific layer inputCNTK C# - 将输出连接到特定层输入
【发布时间】:2019-02-09 13:57:21
【问题描述】:

我需要创建 10 个神经元,每个神经元都有 2 个输入。每一个都有一个输出,应该连接到一个具有10个输入和一个输出的层。

我对输入神经元的定义:

Function in1 =  Util.Dense(CNTK.Variable.InputVariable(CNTK.NDShape.CreateNDShape(new int[] { 2 }), CNTK.DataType.Float), 1, computeDevice);
Function in2 =  Util.Dense(CNTK.Variable.InputVariable(CNTK.NDShape.CreateNDShape(new int[] { 2 }), CNTK.DataType.Float), 1, computeDevice);
Function in3 =  Util.Dense(CNTK.Variable.InputVariable(CNTK.NDShape.CreateNDShape(new int[] { 2 }), CNTK.DataType.Float), 1, computeDevice);
Function in4 =  Util.Dense(CNTK.Variable.InputVariable(CNTK.NDShape.CreateNDShape(new int[] { 2 }), CNTK.DataType.Float), 1, computeDevice);
Function in5 =  Util.Dense(CNTK.Variable.InputVariable(CNTK.NDShape.CreateNDShape(new int[] { 2 }), CNTK.DataType.Float), 1, computeDevice);
Function in6 =  Util.Dense(CNTK.Variable.InputVariable(CNTK.NDShape.CreateNDShape(new int[] { 2 }), CNTK.DataType.Float), 1, computeDevice);
Function in7 =  Util.Dense(CNTK.Variable.InputVariable(CNTK.NDShape.CreateNDShape(new int[] { 2 }), CNTK.DataType.Float), 1, computeDevice);
Function in8 =  Util.Dense(CNTK.Variable.InputVariable(CNTK.NDShape.CreateNDShape(new int[] { 2 }), CNTK.DataType.Float), 1, computeDevice);
Function in9 =  Util.Dense(CNTK.Variable.InputVariable(CNTK.NDShape.CreateNDShape(new int[] { 2 }), CNTK.DataType.Float), 1, computeDevice);
Function in10 = Util.Dense(CNTK.Variable.InputVariable(CNTK.NDShape.CreateNDShape(new int[] { 2 }), CNTK.DataType.Float), 1, computeDevice);

有 10 个输入的层:

mergeLayer = Util.Dense(CNTK.NDShape.CreateNDShape(new int[] { 10 }), CNTK.DataType.Float, 1, computeDevice);

如何将 10 个输出连接到 mergeLayer 的每个输入?

【问题讨论】:

    标签: c# neural-network deep-learning cntk


    【解决方案1】:

    通常您不会单独创建层函数,而是将一个函数作为输入参数传递给另一个函数。用 cntk.splice 连接数据。在 Python 中:

    import cntk as C
    
    input1 = C.ops.input_variable((4, 2), np.float32)
    
    in1 =  C.layers.Dense(1)( input1[0] )
    in2 =  C.layers.Dense(1)( input1[1] )
    in3 =  C.layers.Dense(1)( input1[2] )
    in4 =  C.layers.Dense(1)( input1[3] )
    
    allIn = C.splice( in1, in2, in3, in4, axis=0 )
    
    mergeLayer = C.layers.Dense(1)( allIn )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-06
      • 2010-12-07
      • 2020-09-20
      • 1970-01-01
      • 2016-11-30
      • 2019-05-04
      • 1970-01-01
      • 2022-01-08
      相关资源
      最近更新 更多