Как инициализировать переменные файла pb в тензорном потоке без сопутствующих файлов ckpt? - PullRequest
1 голос
/ 18 мая 2019

У меня есть простой файл pb, без какого-либо файла ckpt.Я хотел бы (случайным образом) инициализировать все веса файла pb и сохранить инициализированные веса как файл ckpt.Я не мог найти способ сделать это.инициализатор глобальной переменной просто не бросил переменные для сохранения

1 Ответ

1 голос
/ 27 июня 2019

Модель можно сохранить в .pb format тремя способами.Используя tf.saved_model.simple_save, tf.saved_model.Builder.save или estimator.export_savedmodel.

Чтобы ответить на ваш вопрос, вы можете восстановить .pb model с помощью функции tf.saved_model.loader.load(sess,[tag_constants.TRAINING],Export_Dir).

Затем вы можете восстановить веса (вы должны запомнить имя, соответствующее Weights Tensor), используя следующий код:

with graph2.as_default():
        with tf.Session(graph=graph2) as sess:
            # Restore saved values
            print('\nRestoring...')
            tf.saved_model.loader.load(sess,[tag_constants.SERVING],path)
            #Specify the correct `Weights_Tensor_Name`
            Weights_Var = graph2.get_tensor_by_name('Weights_Tensor_Name:0')

После этого вы можете сохранить веса в .checkpointфайлы с использованием приведенного ниже кода:

saver = tf.train.Saver({"Weights_Var": Weights_Var})

Но если вы просто хотите сохранить Random Tensor (с именем Weights) в файле контрольных точек, вы можете сгенерировать случайный тензор, используя функцию tf.random.uniform и затем можете сохранить его, используя код ниже:

saver = tf.train.Saver({"Weights_Var": Weights_Var})
...