Если у меня есть подготовленная модель Imagnet от Google (inception-resnet-v2), и модель на самом деле дает мне два выхода назад: logits
и список, называемый end_points, где я могу извлечь окончательный прогнозируемый слой, который был выполнен с помощью softmax активация, то есть переменная, называемая predictions
. Однако это окончательно не дает мне метку класса, которую я бы требовал для предсказаний. Для этого мне нужно было либо сделать label = tf.argmax(predictions, 1)
после Я определил train_op на графике, так что я не буду влиять на исходное вычисление.TensorFlow: Будет ли больше памяти потребляться, если я буду обрабатывать вторичные вычисления внутри графика?
В качестве альтернативы, я могу использовать np.argmax(sess.run(predictions), 1)
, который вычисляется из графика.
Вопрос в том, хочу ли я сделать первый подход, будет ли он потреблять больше памяти и повлияет на мои вычисления (с точки зрения batch_size, который я могу использовать)? Безопаснее и лучше ли просто вычислять необходимые метки из графика?
это не имеет значения, в каком порядке граф строится, 'session.run' не знает, если вы добавили' argmax' до train_op или после –
@YaroslavBulatov. Я думаю, что вопрос другой: Является ли numpy argmax более эффективным, чем argsax tensorflow, когда входные данные поступают из тензорного потока? –
@ YaroslavBulatov да, но будет ли дополнительная конструкция графика, который запускается только после того, как обучение было выполнено, потребляет больше памяти? Смысл сказать, если я изначально построил график, используя максимальную память в моем текущем размере партии, если я восстановил график для вычисления дополнительных операций, которые будут выполняться в течение одного и того же сеанса (с моим первоначальным обучением, оставаясь тем же), повлияет ли мое обучение? – kwotsin