【手撕 - 深度学习】TF Lite 魔改:添加自定义 op

作者:LogM

本文原载于 https://segmentfault.com/u/logm/articles ,不允许转载~


1. 前言

Tensorflow Lite 是 Tensorflow 移动端的版本。

有关于 Tensorflow 怎么添加自定义 op,网上有很多博客都讲到了,我就不介绍了。而 Tensorflow Lite 因为相对小众一些,所以网上关于添加自定义 op 的教程很少。

刚好最近因为项目需要,我在 Tensorflow Lite 中添加了几个自定义 op。我把我的思考过程以及修改步骤记录下来,方便有相同需求的同学参考。

我花了大篇幅记录思考过程和源码阅读过程,是希望给其他小伙伴一些启发,以后遇到类似的深度学习框架魔改的问题,可以不依赖网上教程。

不关心思考过程和源码阅读的小伙伴,可以直接跳到文章的最后,我把修改的步骤做了总结。

2. 源码来源

我使用源码是 Tensorflow v1.13.2

Tensorflow Lite 位于 tensorflow/lite 目录下。

3. 官方教程

官网也有关于 Tensorflow Lite 怎么添加自定义 op 的教程,详见官方地址

官方教程把"怎么写自定义 op 的代码"讲得很清楚,遗憾的是没有详细说明怎么把这些新写的代码放入到工程中编译。

4. 进入正题

第1步,找到目标文件夹位置

首先我们要找到源码中放置自定义 op 的文件夹位置。有多种寻找的方式:

  1. tensorflow 源码的目录结构非常清楚,有过类似框架阅读经验的同学应该马上能猜出位置;
  2. 官方教程告诉我们,自定义 op 的代码要实现 PrepareEval 这两个函数,那么我们使用 grep 命令查找有哪些代码文件中带有这两个函数。

最终,我们找到的位置是 tensorflow/lite/kernels

找到目标文件夹位置以后,把新增代码放入该文件夹就可以了吗?显然,没有这么简单。有几个方面需要考虑:

  1. 代码逻辑层面&#x
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值