Como usar tf.train.MonitoredTrainingSession para restaurar apenas determinadas variáveis

Como alguém diz a um tf.train.MonitoredTrainingSession para restaurar apenas um subconjunto das variáveis e executar a inicialização no restante?

Começando com o tutorial cifar10 ..https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10_train.py

.. Criei listas das variáveis para restaurar e inicializar e as especifiquei usando um andaime que passo para o MonitoredTrainingSession:

  restoration_saver = Saver(var_list=restore_vars)
  restoration_scaffold = Scaffold(init_op=variables_initializer(init_vars),
                                  ready_op=constant([]),
                                  saver=restoration_saver)

mas isso gera o seguinte erro:

RuntimeError: As operações de inicialização não prepararam o modelo para local_init. Init op: group_deps, init fn: None, erro: Variáveis não inicializadas: conv2a / T, conv2b / T, [...]

.. onde as variáveis não inicializadas listadas na mensagem de erro são as variáveis da minha lista "init_vars".

A exceção é gerada por SessionManager.prepare_session (). O código fonte desse método parece indicar que, se a sessão for restaurada a partir de um ponto de verificação, o init_op não será executado. Portanto, parece que você pode ter variáveis restauradas ou variáveis inicializadas, mas não as duas.