一开始我计划使用 tensorlayerx ,这个框架支持多个后端,然而,经过一两年的发展, tensorlayerx 最新为 0.5.8 ,更新日期为 2023 年 2 月 3 日,当时支持的几个框架版本是:
之后便没有更新了。创业遇到困难?资金问题?
接下来在 google 中搜索 multi-backend ai framework, 虽然一开始还是 tensorlayerx ,但是我发现偶尔会出现 keras 的字眼。那么就详细查询一下 keras 最近的新闻。keras 在我认知中的确是个多后端框架,一开始支持微软的框架,可惜这个框架似乎不是很火……keras 后来也逐渐成为 tensorflow 的一部分。
不过最近发现 keras 社区推出了 3.0 版本,不得不感叹有些开发者对自己的作品还是很珍惜的。当然我觉得这和 jax 有一定的关系,毕竟 jax 更兼容 numpy 的工作流程和数据结构
除了我找到这两个,请问还有哪些框架比较好用呢?
1
111qqz 231 天前
"框架支持多个后端"有什么好处吗(
|
2
iorilu 231 天前
没有现成的把
毕竟两个框架差别很大 建议先支持 pytorch 的 后面再说呗, 真有搞头再加上 tf 支持 |
3
matchalatte 230 天前
个人拙见:多后端框架存在着很多难以解决的问题,
- 深度学习后端一直存在动态图/静态图两个流派,想同时兼容这两种是很困难的。特别是一些网络需要用到动态图特性,这种操作在静态图中基本无法实现。 - 从框架中抽象出的“兼容 API”反而会没有办法很好的利用各个后端的独特功能,因为兼容舍弃了特色。 - 由于多做了一层转换,在需要对底层代码进行修改时会更加复杂,层层嵌套的代码可读性也比较差。 - 后端框架会实时更新,一些 API 会被废弃(点名批评 TF ),而作为多后端框架一次一般只能兼容单个版本,更新维护也比较费时费力。 鉴于这些弊端,多后端框架一直不是很流行,并且使用时并不一定能降低开发难度。 目前从生态角度 Pytorch 应该是支持最好的,可以考虑通过 pytorch 训练,而在部署时将模型进行一定的转换,从而实现更好的兼容,例如: - 开放机器学习格式 ONNX: https://github.com/onnx/onnx ,通过 ONNX 作为中间媒介也可以让 pytorch 模型在 tensorflow 等框架中加载运行。 - 苹果 CoreML 模型格式(实际上也是基于 ONNX 转换的): https://apple.github.io/coremltools/docs-guides/source/convert-pytorch.html - 目前 LLM 端上部署比较主流的 GGUF 格式: https://github.com/ggerganov/llama.cpp/blob/master/convert-hf-to-gguf.py |
4
MotorVilleger OP @matchalatte 感谢,目前 pytorch 肯定是主流,然后通过各种工具部署和转化模型
|