#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
, это входной тензор, верно? Но я хочу найти выходной тензор, который содержит полученный вес из модели и может использоваться для прогнозирования.