Как обучить модель с помощью библиотеки TFSlim?

#python #tensorflow #machine-learning #deep-learning #computer-vision

#python #тензорный поток #машинное обучение #глубокое обучение #компьютерное зрение

Вопрос:

Я читаю исходный код API обнаружения объектов, и мне интересно, как использовать TFSlim для обучения модели?

Более конкретно, когда мы используем Tensorflow для обучения модели, мы используем что-то вроде этого:

 parameters = model(X_train, Y_train, X_test, Y_test)
# Returns: parameters -- parameters learnt by the model. 
# They can then be used to predict.
 

И чтобы предсказать результат, мы используем что-то вроде:

 y_image_prediction = predict(my_image, parameters)
 

Но в файле trainer.py , у нас нет чего-то подобного вышеописанному, мы получаем только:

 slim.learning.train(
    train_tensor,
    logdir=train_dir,
    master=master,
    is_chief=is_chief,
    session_config=session_config,
    startup_delay_steps=train_config.startup_delay_steps,
    init_fn=init_fn,
    summary_op=summary_op,
    number_of_steps=(
        train_config.num_steps if train_config.num_steps else None),
    save_summaries_secs=120,
    sync_optimizer=sync_optimizer,
    saver=saver)
 

И нет никаких сведений об этой slim.learning.train функции. Итак, мне интересно, что такое использование slim.learning.train функции и как мы получаем параметры, которые можно использовать для прогнозирования результата?

ВОТ исходный код trainer.py .

Ответ №1:

train Функция не возвращает значение, поскольку она изменяет фактические параметры модели. Функция делает это, выполняя команду train_tensor which: «A Tensor , которая при выполнении применит градиенты и вернет значение потерь». как написано в документации функции.

Тензор в документации говорится о том, что вы получаете, когда указываете оптимизатору оптимизировать некоторую функцию затрат. Это opt_op в следующем примере:

 opt = GradientDescentOptimizer(learning_rate=0.1)
opt_op = opt.minimize(cost)
 

Подробнее в документации оптимизатора.

Комментарии:

1. Итак, как мне получить parameters обратную связь, чтобы я мог использовать ее parameters для прогнозирования результата, пока slim.learning.train не возвращаю это parameters ?

2. Что именно вы называете параметрами? Я понял, что под параметрами вы подразумеваете переменные объекты TensorFlow. Они изменяются во время обучения, т. Е. Одни и те же переменные объекты имеют разные значения.

3. Итак, как мы можем предсказать результат после обучения модели? Это то parameters trained weight , что будет использоваться для прогнозирования результата. Для exp я использовал y_image_prediction = predict(my_image, parameters) для прогнозирования результата. Итак, как мне сделать это с помощью TFSlim?

4. Должны быть некоторые тензоры, которые являются входными данными для вашей модели ( tf.Dataset либо некоторые заполнители), и тензор, который является результатом вашей модели. Вы запускаете этот тензор в сеансе.

5. В моем случае, я думаю train_tensor , это входной тензор, верно? Но я хочу найти выходной тензор, который содержит полученный вес из модели и может использоваться для прогнозирования.