小编sch*_*hil的帖子

在TensorFlow中重新训练冻结的* .pb模型

如何导入冻结的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=TrueNodeDef对象。

tensorflow

6
推荐指数
1
解决办法
2198
查看次数

标签 统计

tensorflow ×1