Как использовать реализацию Tensorflow slim Alexnet? - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь решить проблему с классификацией изображений с помощью реализации tennetflow.contrib.slim Alexnet.Если я пытаюсь создать граф без следующей строки кода, граф успешно создан.

valid_predicitions = tf.nn.softmax (model (tf_validation_dataset))

Но когда я добавляю эту строку в код, я получаю следующую ошибку

ValueError: переменная alexnet_v2 / conv1 / weights уже существует, запрещено.Вы имели в виду установить reuse = True или reuse = tf.AUTO_REUSE в VarScope?

Мне нужны потери и точность для данных тестирования и проверки после определенного числа итераций.Мой полный код выглядит следующим образом

with graph.as_default():

tf_train_dataset = tf.placeholder(tf.float32, shape=(batchsize, height, width,channels))
tf_train_labels = tf.placeholder(tf.float32, shape=(batchsize, num_labels))
tf_validation_dataset = tf.constant(valid_dataset)
tf_test_dataset = tf.constant(test_dataset)

def model(data):
    with slim.arg_scope(alexnet.alexnet_v2_arg_scope()):
        outputs, end_points = alexnet.alexnet_v2(data,num_classes=num_labels)
    return outputs

logits = model(tf_train_dataset)
#calculate loss
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=tf_train_labels, logits=logits))
#optimization Step
optimizer = tf.train.AdamOptimizer(1e-4).minimize(loss)

#predictions for each dataset
train_predicitions = tf.nn.softmax(logits)
valid_predicitions = tf.nn.softmax(model(tf_validation_dataset))

1 Ответ

0 голосов
/ 18 сентября 2018

model() - это функция, которая создает alexnet при каждом вызове.Во второй раз, когда вы вызываете функцию, в сообщении об ошибке сообщается, что одна из переменных в alexnet уже была создана, и это правда.

Вам придется реорганизовать свой код так, чтобы вы только создавали модельодин раз.Я предполагаю, что это означает, что входные данные для модели должны быть заполнителем, где размер пакета не указан (None), так что вы можете передать ему обычные тренировочные партии или полные данные проверки как одну большую партию.

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