tensorflow - toco_from_protos:找不到命令
问题描述
我正在使用以下链接将我的 Tensorflow 模型转换为 tf lite 模型 https://www.tensorflow.org/lite/convert/python_api,在这里我遵循“从文件中导出 GraphDef”的说明,但我m 出现以下错误
"TOCO failed. See console for info.\n%s\n%s\n" % (stdout, stderr))
tensorflow.lite.python.convert.ConverterError: TOCO failed. See console for info.
/bin/sh: toco_from_protos: command not found
我已经安装了最新的 tensorflow v1.13.1
解决方案
问题
TensorFlow 调用特定的二进制文件以将 .pb 文件(由 protobuf 存储)转换为 tflite 模型。二进制文件是“toco_from_protos”,错误消息表明 shell 解释器(在本例中为“/bin/sh”)无法找到二进制文件(“toco_from_proto”)。
您需要在 PATH 环境变量中包含“toco_from_proto”文件的路径。
这个怎么做
首先,检查文件是否存在。例如,您可以使用命令“定位”:
$ locate toco_from_proto
/home/user/anaconda3/envs/tensorflow/bin/toco_from_protos
/home/user/anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/lite/toco/python/toco_from_protos.py
/home/user/anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/lite/toco/python/__pycache__/toco_from_protos.cpython-36.pyc
就我而言,我使用 Anaconda 来管理环境。因此,二进制文件位于环境容器(在本例中为“tensorflow”)的二进制路径(“bin”文件夹)中。
为确保正确执行二进制文件,请在 PATH 环境变量中包含“toco_from_protos”文件的路径。如果您使用的是基于 Linux 的系统,则可以执行以下操作:
$ export PATH=$PATH:/home/user/anaconda3/envs/tensorflow/bin
如果您使用的是 IDE 程序(例如 Pycharm),您可以使用与导出 PATH 变量相同的控制台调用 IDE 运行脚本。例如:
$ export PATH=$PATH:/home/user/anaconda3/envs/tensorflow/bin
$ /opt/pycharm-community-2018.1.4/bin/pycharm.sh
新的 PATH 值更改仅保留在该控制台窗口中,因此如果要使更改持久化,请将导出语句包含在 '~/.bashrc' 文件中。
推荐阅读
- javascript - 为什么我的 for/in 循环给我空结果,但我的常规 for 循环没有(图片)?
- java - 启用工具栏图标时如何显示汉堡图标
- javascript - 如何在 javascript 或 MySQL 中对数据透视动态数组进行分组?
- sails.js - SailsJS 中的全局模型无法访问
- c++ - 如何使用 unique_ptr 进行迭代?
- reactjs - store.subscribe() 在状态更改时无法在辅助服务功能中工作
- java - A* 算法完成但返回次优路径
- objective-c - 苹果手表处于睡眠模式时如何执行代码
- usdz - 转换为 USDZ 后显示为透明的对象
- jenkins - 根据选择触发依赖构建以将其作为独立构建运行