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.