models/research/gan/pix2pix中bazel-bin缺失及launch_script.sh异常求助
我来帮你排查这个困扰你的pix2pix脚本执行问题,这种bazel路径不匹配的情况我之前在部署TensorFlow相关工具时也碰到过,咱们一步步来解决:
先确认bazel的基础运行状态
先在终端里单独执行bazel version,看看能不能正常输出版本信息。如果提示找不到bazel命令,说明bazel没正确安装或者没加入系统环境变量,得先把这个基础问题解决。检查脚本中的
git_repo变量配置
脚本里的${git_repo}应该指向你本地克隆的TensorFlow/models仓库的根目录(比如~/tensorflow/models)。如果这个变量设置错误,bazel build "${git_repo}/research/slim:download_and_convert_imagenet"这条命令就会在错误的路径下执行,自然不会生成正确的bazel-bin目录。你可以在脚本里加一行echo ${git_repo},运行脚本看看输出的路径是不是你实际的models仓库路径。手动执行bazel构建命令,排除脚本路径问题
先切换到models/research目录:cd /path/to/your/models/research然后手动执行构建命令:
bazel build slim:download_and_convert_imagenet如果构建成功,你会在当前目录下看到生成的
bazel-bin文件夹。这时候再运行./bazel-bin/download_and_convert_imagenet ${DATASET_DIR},应该就能正常执行了。这说明问题出在脚本里的路径切换或者变量引用上。修正脚本中的执行路径
如果手动构建成功,那脚本里的问题大概率是路径不对:- 要么在执行bazel build之前,先切换到
${git_repo}/research目录; - 要么把运行命令里的
./bazel-bin/download_and_convert_imagenet改成${git_repo}/research/bazel-bin/download_and_convert_imagenet,确保指向正确的构建产物路径。
- 要么在执行bazel build之前,先切换到
清理bazel缓存重新构建
有时候bazel的缓存会导致奇怪的构建问题,你可以先清理缓存再重新尝试:bazel clean然后重新执行构建命令。
另外还要注意,TensorFlow的版本和bazel版本需要兼容,比如TensorFlow 1.x通常需要bazel 0.2x版本,而TensorFlow 2.x需要更高版本的bazel(比如3.x以上),如果版本不匹配也可能导致构建失败。
内容的提问来源于stack exchange,提问作者Muhamad Iqbal

