如何将Keras读取的训练模型参数赋值给其他模型?

2026-04-20 05:220阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1786个文字,预计阅读时间需要8分钟。

如何将Keras读取的训练模型参数赋值给其他模型?

介绍+本博客中的代码,实现的是加载训练良好的模型model_halcon_resenet.h5,并将该模型的参数赋值给两个不同的新模型。+函数式模型+官网给出的一个训练良好的模型,并输出任意层的任意层结果。

介绍

本博文中的代码,实现的是加载训练好的模型model_halcon_resenet.h5,并把该模型的参数赋值给两个不同的新的model。

函数式模型

官网上给出的调用一个训练好模型,并输出任意层的feature。

model = Model(inputs=base_model.input, outputs=base_model.get_layer(‘block4_pool').output)

但是这有一个问题,就是新的model,如果输入inputs和训练好的model的inputs大小不同呢?比如我想建立一个输入是600x600x3的新model,但是训练好的model输入是200x200x3,而这时我又想调用训练好模型的卷积核参数,这时该怎么办呢?

其实想一下,用训练好的模型参数,即使输入的尺寸不同,但是这些模型参数仍然可以处理计算,只是输出的feature map大小不同。那到底怎么赋值呢?其实很简单

在定义新的model时,新的model层在定义时,需要加上名字,而这个名字就是训练好的模型的每层名字。

阅读全文

本文共计1786个文字,预计阅读时间需要8分钟。

如何将Keras读取的训练模型参数赋值给其他模型?

介绍+本博客中的代码,实现的是加载训练良好的模型model_halcon_resenet.h5,并将该模型的参数赋值给两个不同的新模型。+函数式模型+官网给出的一个训练良好的模型,并输出任意层的任意层结果。

介绍

本博文中的代码,实现的是加载训练好的模型model_halcon_resenet.h5,并把该模型的参数赋值给两个不同的新的model。

函数式模型

官网上给出的调用一个训练好模型,并输出任意层的feature。

model = Model(inputs=base_model.input, outputs=base_model.get_layer(‘block4_pool').output)

但是这有一个问题,就是新的model,如果输入inputs和训练好的model的inputs大小不同呢?比如我想建立一个输入是600x600x3的新model,但是训练好的model输入是200x200x3,而这时我又想调用训练好模型的卷积核参数,这时该怎么办呢?

其实想一下,用训练好的模型参数,即使输入的尺寸不同,但是这些模型参数仍然可以处理计算,只是输出的feature map大小不同。那到底怎么赋值呢?其实很简单

在定义新的model时,新的model层在定义时,需要加上名字,而这个名字就是训练好的模型的每层名字。

阅读全文