使用 Kotlin Native 编写 TensorFlow 程序的事儿

本文探讨使用 Kotlin Native 进行 TensorFlow 程序开发的可能性,包括通过 Java API 和原生接口。重点介绍了如何利用 TensorFlow 的 C API 在 Kotlin 中构建示例程序,提供了一个官方 Demo 的详细步骤,展示了从创建工程到运行的全过程。最后鼓励读者参与到 Kotlin 对 TensorFlow 的封装工作中。

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

1. 简单说说 TensorFlow

TensorFlow 是 Google 大脑团队开源的一套机器学习框架,我对这个东西也是刚刚接触,所以更多的信息请你参考官网:https://www.tensorflow.org。

0?wx_fmt=jpeg

TensorFlow 目前支持的最完善的语言是 Python ,不过对于大型项目,Python 这样的动态语言让代码维护的成本指数级增长。我在国外的一些社区上面看到不少人讨论这个问题,Kotlin 社区中也有人对 Kotlin 未来在这方面的表现给予厚望。

这篇文章就是带大家先去一探究竟,结合现状和我们自己的脑洞,展望一下 Kotlin 将来究竟能如何活跃在机器学习这个领域。

2. 用 Kotlin 基于 TensorFlow 开发的几种可能

2.1 Java Api

毫无疑问,最初想到使用 Kotlin 写这类程序的时候,我首先想到了 TensorFlow 的 Java Api,Java Api,尽管还是 Experimental 阶段,不过这都不叫事儿,Java 生态那么大,将来肯定会支持得比较好的。

WARNING: The API is currently experimental and is not covered by TensorFlow API stability guarantees. See README.md for installation instructions.

基于只要 Java 能干的,Kotlin 一定能干的原则,这条路行得通,也几乎没有什么接入成本,所以我就按下不表啦。

2.2 Native

Kotlin 其实从最初作为 Java 的小弟隐忍至今,已经不是 Java 能罩得住的了。前不久 Kotlin Native 0.4 preview 发布,已经可以用 CLion 尝鲜了,虽然编译时间还是一如既往的长,单步调试也不是那么完美,不过,代码提示已经有了,随便用 C 接口写点儿程序都不再是什么问题。

TensorFlow 提供了一套 C Api,旨在为各种语言提供最基础的支持。换句话说,其他各类语言的 Api 本质上都是从这儿来的,这里当然不会有什么 Session 类,你在 Python 里面看到的无非也是基于这些最基本的 Api 的封装。

那么,是不是说只要 Kotlin 基于这套 Api 做一些封装就可以了呢?答案是必须滴

3. 开始写点儿代码

3.1 官方的 Demo

好啦,下面我们准备写点儿 Kotlin Native 的代码来庆祝一下这个伟大的想法。等等,我好想在 Kotlin Native 官方的 Sample 里面发现了一个叫 “TensorFlow” 的目录!

https://github.com/JetBrains/kotlin-native/tree/master/samples/tensorflow

TensorFlow demo

Small Hello World calculation on the TensorFlow backend, arranging simple operations into a graph and running it on a session. Like other TensorFlow clients (e. g. for Python), this example is built on top of the TensorFlow C API, showing how a TensorFlow client in Kotlin/Native could look like.

有兴趣的话大家可以去看下这个工程,工程采用 Gradle 和 shell 两种方式构建,如果大家之前对 Kotlin Native 有了解,搞懂它是很容易的。

3.2 CMake 版的 Demo

这是一件很纠结的事情。我终于等到了 Kotlin Native 的 IDE 支持,结果它却是用 CMake 构建的。最重要的 JetBrains 也没有推出一款叫 “IntelliK” 的 IDE,而是直接用 CLion,我去,哪怕改名叫 “KLion” 也行啊,我们这些 Kotlin 的粉丝不答应啊。

好吧,其实最重要的是之前 Kotlin Native 的工程都是 Gradle 构建的,想要体验一下 CLion 的螃蟹味,还得改造下构建脚本,也是没谁了。

不过倒也不麻烦,TensorFlow Demo 的代码是现成的,我们只需要改造下构建脚本,这又有何难。我们直接用 CLion 创建一个 Kotlin Native 的工程(选项里面找不到的,Kotlin Native 插件都不下载还来凑什么热闹):

0?wx_fmt=jpeg

工程创建完,我们就把前面提到的官方 Demo 的代码复制过来,把类做下拆分和整理(当然这也不是必须的啦),如下图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值