You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow目标检测训练报错SyntaxError:f-string语法兼容问题求助

解决TensorFlow目标检测训练中的f-string语法错误

错误原因

你遇到的SyntaxError是因为当前Python版本为3.5(或更低),而代码中使用了f-string语法(Python3.6及以上才支持),导致语法不兼容。

两种解决方案

方案一:修改代码兼容旧Python版本

直接替换报错行的f-string为兼容的.format()语法:

  1. 打开报错文件:C:\tensorflow1\models\research\object_detection\core\target_assigner.py
  2. 定位到第1051行,将:
    raise ValueError(f'Unknown heatmap type - {self._box_heatmap_type}')
    
    修改为:
    raise ValueError('Unknown heatmap type - {}'.format(self._box_heatmap_type))
    
  3. 保存文件后重新运行训练命令。如果后续出现其他类似f-string的报错,重复此替换操作即可。

方案二:创建新Conda环境升级Python(推荐)

避免修改代码的繁琐,同时不破坏原有TensorFlow环境:

  1. 打开Anaconda Prompt,先查看原有环境的TensorFlow版本:
    conda activate tensorflow1
    pip show tensorflow
    
  2. 记录TensorFlow版本(如TensorFlow1.x支持Python3.6-3.8),创建新环境:
    conda create -n tf_training python=3.7
    conda activate tf_training
    
  3. 安装对应版本的TensorFlow(以1.15为例):
    pip install tensorflow==1.15
    
  4. 按照原指南步骤,重新配置TensorFlow Object Detection API的依赖(protobuf编译、环境变量设置等)
  5. 将原有training/目录复制到新环境的对应路径下,运行训练命令。

方案说明

方案二更稳妥,因为修改代码可能会遇到多处f-string兼容问题,新环境可以完全隔离原有配置,避免版本冲突。

内容的提问来源于stack exchange,提问作者tnguyendev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:20:28