为 Ivy 翻译器添加 TensorFlow 前端支持
作者: YushaArif99创建于 2024年12月17日更新于 2025年5月5日
标签TensorFlow FrontendToDoTranspiler
目标:
主要目标是实现 TensorFlow 的转译流程的前两个阶段:
- 将 TensorFlow 代码降级为 Ivy 的 TensorFlow 前端 IR。
- 将 TensorFlow 前端 IR 转换为 Ivy 的核心表示。
一旦完成这些阶段,剩下的流程可以重复用于其他框架,如 JAX、PyTorch 或 NumPy。步骤如下:
source='tensorflow' → target='tensorflow_frontend'
source='tensorflow_frontend' → target='ivy'
source='ivy' → target='jax'/'numpy'/etc. 这与现有的 PyTorch 转译流程相似:
source='torch' → target='torch_frontend'
source='torch_frontend' → target='ivy'
source='ivy' → target='jax'/'numpy'/etc. 关键任务:
- 为核心转换步骤添加特定框架的原生实现:
- 例如,实现
native_tf_recursive_transformer.py以遍历和转换 TensorFlow 原生源代码。 - 使用
native_torch_recursive_transformer.py作为参考 (示例)
- 例如,实现
- 定义 TensorFlow 到 TensorFlow 前端 IR 的转换流程:
- 在
source_to_frontend_translator_config.py中创建一个新的流程,以处理source='tensorflow', target='tensorflow_frontend'阶段 (示例)。
- 在
- 定义 TensorFlow 前端 IR 到 Ivy 的转换流程:
- 在
frontend_to_ivy_translator_config.py中添加另一个流程,以处理source='tensorflow_frontend', target='ivy'阶段 (示例)。
- 在
- 为 TensorFlow 的 Keras API 添加状态类:
- 实现
keras.Layer和keras.ModelAPI 的状态类,它们继承自ivy.Module。 - 参考现有的 PyTorch
nn.Module实现 (示例) - 这允许进行顺序降级:
- 实现
…
内容来源: unifyai/ivy