Как загрузить веса обученной сети в Returnn с помощью TensorFlow - PullRequest
0 голосов
/ 26 июня 2018

При попытке загрузить сохраненные веса за несколько эпох обученного возвращаемые сети с использованием следующего кода:

import tensorflow as tf
from returnn.Config import Config
from returnn.TFNetwork import TFNetwork

for i in range(1,11):
    modelFilePath = path/to/model/ + 'network.' + '%03d' % (i,)

    returnnConfig = Config()
    returnnConfig.load_file(path/to/configFile)
    returnnTfNetwork = TFNetwork(config=path/to/configFile, train_flag=False, eval_flag=True)

    returnnTfNetwork.construct_from_dict(returnnConfig.typed_value('network'))

    with tf.Session() as sess:
        returnnTfNetwork.load_params_from_file(modelFilePath, sess)

Я получаю следующую ошибку:

Variables to restore which are not in checkpoint:
global_step_1

Variables in checkpoint which are not needed for restore:
global_step

Probably we can restore these:
(None)

Error, some entry is missing in the checkpoint

1 Ответ

0 голосов
/ 26 июня 2018

Проблема в том, что вы воссоздаете TFNetwork каждый раз в цикле, и там также каждый раз создается новая переменная для глобального шага, которая должна называться по-разному, поскольку каждая переменная должна иметь уникальное имя.

Вы можете сделать что-то подобное внутри цикла:

tf.reset_default_graph()
...