CNTK C # - соединяет выход с определенным входом слоя - PullRequest
0 голосов
/ 09 февраля 2019

Мне нужно создать 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?

1 Ответ

0 голосов
/ 13 марта 2019

Обычно вы не создаете функции слоя отдельно, а передаете одну функцию в качестве входного параметра другой.Объедините данные с помощью 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 )
...