Тренировка Resnet-50 с набором данных CIFAR-100 в TensorFlow, не может получить хорошую точность - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь создать модель resnet-50 в тензорном потоке с помощью набора данных cifar-100. Я использовал встроенный resnet_v1_50 для создания модели в тензорном потоке с двумя полностью связанными слоями на голове. Но моя точность проверки составила почти 37%. это проблема ??? я настраиваю неправильно определить и настроить resnet_v1_50 ??? мой код создания модели приведен ниже.

import tensorflow as tf
from tensorflow.contrib.slim.python.slim.nets import resnet_v1


X = tf.placeholder(dtype=tf.float32, shape=[None, 32, 32, 3])

Y = tf.placeholder(dtype=tf.float32, shape=[None, 100])


net, end_points = resnet_v1.resnet_v1_50(X,global_pool=False,is_training=True)

flattened = tf.contrib.layers.flatten(net)

dense_fc1 = tf.layers.dense(inputs=flattened,units=625, activation=tf.nn.relu,kernel_initializer=tf.contrib.layers.xavier_initializer())

dropout_fc1 = tf.layers.dropout(inputs=dense_fc1,rate=0.5, training=self.training)

logits = tf.layers.dense(inputs=dropout_fc1, units=num_classes,kernel_initializer = tf.contrib.layers.xavier_initializer())

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=Y))

optimizer = tf.train.AdamOptimizer(learning_rate=0.001).minimize(cost)

1 Ответ

0 голосов
/ 01 июля 2019

Я думаю, у вас есть очень плотный слой. ResNet использует один полностью связанный слой с softmax и size=num_classes.

Возможно, вам также понадобится убедиться, что ваши гиперпараметры установлены правильно, например learning_rate и weight_decay и ваш конвейер обработки вводатакже правильно.

Вот дополнительная ссылка, чтобы увидеть, похож ли ваш конвейер на рабочее решение .

...