tensorflow和keras_手动 pytorch 模型转 tensorflow keras 模型

本文介绍了两种手动将PyTorch模型转换为TensorFlow Keras模型的方法,包括使用kernel_initializer和set_weights填充权重。特别强调了在转换过程中LSTM层和BiLSTM层的注意事项,如权重的合并和激活函数的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pytorch 到 tensorflow 可以用onnx作为中间工具转换,将pytorch转为onnx,再从onnx转为tensorflow,但是中间可能出现一些乱七八糟的问题。其实手动读参数再填充的对应的模型中也很方便,本文就总结一下手动模型转换。

第一种方式: 直接用kernel_initializer来填充权重

  • dense 层转换:
 dense_w = state_dict['dense.weight'].permute(1,0).numpy()
 dense_b = state_dict['dense.bias'].numpy()
 output = tf.keras.layers.Dense( dense_w.shape[-1], kernel_initializer=tf.constant_initializer(dense_w), bias_initializer=tf.constant_initializer(dense_b),name='bottleneck')(output)
 output = tf.keras.layers.Softmax(-1)(output)
  • 卷积层转换:
 conv_w = state_dict['conv.weight'].permute(2,1,0).numpy()
 conv_b = state_dict['conv.bias'].numpy()  
 output = tf.keras.layers.Conv1D(filters=conv_w.shape[-1], kernel_size=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值