Softmax боковая ветвь в начальном слое - PullRequest
0 голосов
/ 26 октября 2018

У меня есть вопрос, касающийся начальных слоев или GoogleNet в целом. Упоминается, что существуют функции softmax для разных ветвей, чтобы упорядочить начальные слои. Я использовал реализацию для начальных слоев, как это:

def inception2d(x, in_channels, filter_count):
# bias dimension = 3*filter_count and then the extra in_channels for the avg pooling
bias = tf.Variable(tf.truncated_normal([3*filter_count + in_channels], mu, sigma)),

# 1x1
one_filter = tf.Variable(tf.truncated_normal([1, 1, in_channels, filter_count], mu, sigma))
one_by_one = tf.nn.conv2d(x, one_filter, strides=[1, 1, 1, 1], padding='SAME')

# 3x3
three_filter = tf.Variable(tf.truncated_normal([3, 3, in_channels, filter_count], mu, sigma))
three_by_three = tf.nn.conv2d(x, three_filter, strides=[1, 1, 1, 1], padding='SAME')

# 5x5
five_filter = tf.Variable(tf.truncated_normal([5, 5, in_channels, filter_count], mu, sigma))
five_by_five = tf.nn.conv2d(x, five_filter, strides=[1, 1, 1, 1], padding='SAME')

# avg pooling
pooling = tf.nn.avg_pool(x, ksize=[1, 3, 3, 1], strides=[1, 1, 1, 1], padding='SAME')

x = tf.concat([one_by_one, three_by_three, five_by_five, pooling], axis=3)  # Concat in the 4th dim to stack
x = tf.nn.bias_add(x, bias)
return tf.nn.relu(x)

Теперь упомянуто, что должен быть отдельный слой softmax, делающий прогноз.

enter image description here

Мой вопрос сейчас. Как включить «разветвленный» softmax в тензор потока? Есть ли общие потери или я объединяю потери по сумме весов в конце? Я был бы весьма благодарен за пример. Заранее спасибо. Лучший Макс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...