Восстановить И поделиться обученными переменными: ключ не найден

Я заимствую пример из руководства по обмен переменными:

def my_image_filter(input_images):
    with tf.variable_scope("conv1"):
        # Variables created here will be named "conv1/weights", "conv1/biases".
        relu1 = conv_relu(input_images, [5, 5, 32, 32], [32])
    with tf.variable_scope("conv2"):
        # Variables created here will be named "conv2/weights", "conv2/biases".
        return conv_relu(relu1, [5, 5, 32, 32], [32])

Скажем, я обучил эти переменные и сохранил все четыре переменные: weights и biases из слоев conv1 и conv2, передав var_list в tf.train.Saver.

Теперь я хочу восстановить и использовать их дважды:

with tf.variable_scope("image_filters") as scope:
    result1 = my_image_filter(image1)
    scope.reuse_variables()
    result2 = my_image_filter(image2)

Но имена переменных теперь имеют префикс image_filters, т.е. image_filters/conv1/weights, поэтому заставка не может их восстановить: Key image_filters/conv1/weights not found in checkpoint

Как восстановить все обученные переменные и использовать их несколько раз?


person user3813674    schedule 17.07.2017    source источник
comment
Можете ли вы просто выполнить график несколько раз с разными изображениями каналов? Если нет, то есть аргумент var_list для конструктора Saver. , который может быть словарем, сопоставляющим имена переменных контрольной точки с переменными в графе, в котором они должны быть восстановлены. графики...   -  person Allen Lavoie    schedule 17.07.2017
comment
@AllenLavoie Я использовал аргумент var_list Saver для сохранения, но после этого я не могу получить тот же var_list для восстановления с другой областью действия переменных. Или, может быть, я не уверен, что вы имеете в виду. Вы можете продемонстрировать?   -  person user3813674    schedule 17.07.2017
comment
Я просто имею в виду, что вы можете использовать словарь, сопоставляющий имена контрольных точек (без image_filters/) с объектами Variable (названными с префиксом image_filters/), если невозможно использовать ту же переменную_scope в исходной модели. Если вам тяжело копаться в объектах Variable, взгляните на мою вторую ссылку для примера перебора коллекций переменных в контрольной точке.   -  person Allen Lavoie    schedule 17.07.2017
comment
@AllenLavoie Если вы предоставите это в качестве ответа, я приму его.   -  person user3813674    schedule 18.07.2017