Skip to main content
 首页 » 编程设计

python之修改tensorflow中的预训练模型

2024年12月31日24tuyile006

我想知道如何更改从 tensorflow 的元文件和检查点文件加载的图形,例如:

saver = tf.train.import_meta_graph('***.meta') saver.restore(sess,tf.train.latest_checkpoint('./'))

例如,现有图中有 old_layer1 -> old_layer2 具有预训练的权重。我想插入一个然后它变成 old_layer1 -> new_layer -> old_layer2,并且 new_layer 是随机初始化的,因为它没有预训练参数。回答here说不可能,因为 tf 的图只允许追加,这是真的吗?

所以我想知道是否可以通过将预训练层加载为单个变量,并将预训练权重分配为初始值并自行连接它们来解决这个问题,这样我就可以在旧层之间添加新层。但我不知道如何在代码中做到这一点。

请您参考如下方法:

使用原始 tensorflow 执行此操作可能很复杂,因为 tf 图不会直接编码层的结构。但是,如果您的模型是使用 tf.keras 构建的,这将非常简单,因为加载 keras 模型也会加载其层结构。