我需要创建 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的每个输入?
答案 0 :(得分:0)
通常,您不会分别创建图层功能,而是将一个功能作为输入参数传递给另一个。用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 )