如何从 python 中的预训练模型中获取权重并在 tensorflow 中使用它?
Posted
技术标签:
【中文标题】如何从 python 中的预训练模型中获取权重并在 tensorflow 中使用它?【英文标题】:how can i get weight from a pretrained model in python and use it in tensorflow? 【发布时间】:2022-01-05 19:43:33 【问题描述】:如何从 PyTorch 中的预训练模型中获取权重并在 TensorFlow 中使用它?
这是预训练的模型:
lstm = torch.hub.load("BruceWen120/medal", "lstm")
【问题讨论】:
【参考方案1】:目前无法将 PyTorch 代码转换为 Tensorflow。 (这是一个将编写为在一个框架中训练的代码转换为另一个框架的转译器不可用)。原因是因为训练代码在两个库中以不同的方式编写。
但是,如果在一个库中训练的模型可用,您可以在另一个库中使用它。原因在于神经网络使用标准化的组件,可以在不同框架之间一一对应。
ONNX: Open Neural Network Exchange Format 是一种在库之间传输经过训练的模型的桥梁格式。
虽然 PyTorch 支持开箱即用的 onnx,但 Tensorflow 也可以通过开源连接器连接。 ONNX: Open Neural Network Exchange Format
【讨论】:
以上是关于如何从 python 中的预训练模型中获取权重并在 tensorflow 中使用它?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Pytorch 中的预训练权重修改具有 4 个通道作为输入的 resnet 50?
如何在 HuggingFace Transformers 库中获取中间层的预训练 BERT 模型输出?