Большое спасибо за ваш ответ!Это помогло мне найти рабочее решение.
У меня есть n_features входные нейроны, подключенные к 20 скрытым нейронам.Эти 20 входных нейронов затем соединяются с 2 выходными нейронами.
Таким образом, форма layer_1 имеет вид (batch_size, 20) (или фактически (?, 20)).Кроме того, я столкнулся с одной небольшой проблемой в версии tenorflow относительно concat (также ось = не нужна!).Что касается вашей версии, то, возможно, придется написать:
output = tf.concat(1,[output_1, output_2])
вместо
output = tf.concat([output_1, output_2],1)
В любом случае для дальнейшего использования здесь есть рабочий код (инициализация и подключение):
Инициализация:
weights = {
'h1': tf.Variable(tf.random_normal([n_input, n_hidden_1]),name='w_hidden'),
'h2': tf.Variable(tf.random_normal([n_hidden_1, n_hidden_1]),name='w_hidden2'),
'out1': tf.Variable(tf.random_normal([n_hidden_1, 1]),name='w_out_1'),
'out2': tf.Variable(tf.random_normal([n_hidden_1, 1]),name='w_out_2')
}
biases = {
'b1': tf.Variable(tf.random_normal([n_hidden_1]),name='bias_hidden'),
'b2': tf.Variable(tf.random_normal([n_hidden_1]),name='bias_hidden2'),
'out1': tf.Variable(tf.random_normal([1]),name='bias_out1'),
'out2': tf.Variable(tf.random_normal([1]),name='bias_out2')
}
Подключение:
layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1'], name='hidden_layer_op')
layer_1 = tf.nn.sigmoid(layer_1)
print 'sigmoid'
output_1 = tf.add(tf.matmul(layer_1[0, None, :], weights['out1']), biases['out1'], name='output_layer_op1')
output_2 = tf.add(tf.matmul( layer_1[1, None, :], weights['out2']), biases['out2'], name='output_layer_op1')
output_2 = tf.sigmoid(output_2)
out_layer = tf.concat(1,[output_1, output_2])
return out_layer
Спасибо и всего наилучшего!