如何导入冻结的protobuf,以便对其进行重新训练?
我在网上找到的所有方法都需要检查点。有没有办法读取protobuf,以便将内核常数和偏差常数转换为变量?
编辑1:这类似于以下问题:如何在图(.pb)中重新训练模型?
我查看了DeepSpeech,该问题的答案中建议使用它。他们似乎有删除的支持的initialize_from_frozen_model。我找不到原因。
编辑2:我尝试创建一个新的GraphDef对象,在其中我用变量替换了内核和偏差:
probable_variables = [...] # kernels and biases of Conv2D and MatMul
new_graph_def = tf.GraphDef()
with tf.Session(graph=graph) as sess:
for n in sess.graph_def.node:
if n.name in probable_variables:
# create variable op
nn = new_graph_def.node.add()
nn.name = n.name
nn.op = 'VariableV2'
nn.attr['dtype'].CopyFrom(attr_value_pb2.AttrValue(type=dtype))
nn.attr['shape'].CopyFrom(attr_value_pb2.AttrValue(shape=shape))
else:
nn = new_model.node.add()
nn.CopyFrom(n)
Run Code Online (Sandbox Code Playgroud)
不知道我走的路是否正确。不知道如何设置trainable=True的NodeDef对象。
tensorflow ×1