首页 > 解决方案 > 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

标签: tensorflowtensorflow-lite

解决方案


问题

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' 文件中。


推荐阅读