В общем, это немного сложно, но нам не нужно взламывать тензор потока.
казать tf.train.MonitoredTrainingSession восстановить только подмножество переменных и выполнить инициализацию для остальных?
Начиная с учебника cifar10.https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10_train.py
.. Я создал списки переменных для восстановления и инициализации и указал их с помощью Scaffold, который я передаю MonitoredTrainingSession:
restoration_saver = Saver(var_list=restore_vars)
restoration_scaffold = Scaffold(init_op=variables_initializer(init_vars),
ready_op=constant([]),
saver=restoration_saver)
но это дает следующую ошибку:
RuntimeError: Операции Init не делали модель готовой для local_init. Начальная операция: group_deps, init fn: нет, ошибка: переменные не инициализированы: conv2a / T, conv2b / T, [...]
.. где неинициализированные переменные, перечисленные в сообщении об ошибке, являются переменными в моем списке "init_vars".
Исключение вызывается SessionManager.prepare_session (). Похоже, что исходный код этого метода указывает, что если сеанс восстанавливается с контрольной точки, то init_op не запускается. Таким образом, похоже, что вы можете восстановить или инициализированные переменные, но не оба.