Ответьте сначала, это возможно, но довольно грязно, потому что все переменные, необходимые для SavedModel, преобразуются в константу или другой тип во время замораживания модели ckpt в pb. В tf вернуть 'Constant' в 'Variable' немного сложно, например:
# node is a constant
node = tf.Constant([1, 2])
output_node = tf.NodeDef()
output_node.op = "Variable"
output_node.name = node.name
dtype = node.attr["dtype"].type
data = node.attr["value"].tensor
output_node.attr["dtype"].type = dtype
output_node.attr["value"].CopyFrom(tf.AttrValue(tensor=data))
См. ответ для получения подробной информации о преобразовании константного узла в некоторые другие типы.
Итак, замораживание SavedModel из файла ckpt - самый простой и прямой способ.