Windows10下运行TensorFlow for Poets的retrain.py脚本报错求助
解决Windows 10下TensorFlow for Poets运行retrain.py的问题
我来帮你搞定这两个在Windows上运行TensorFlow for Poets时的常见问题:
1. 修复"ERROR:tensorflow: Image directory '' not found"错误
这个错误大概率是命令行参数解析出了问题,结合你的命令来看,主要有两个可能的原因:
原因1:环境变量未设置或引用方式错误
你命令里用到了%ARCHITECTURE%变量,但Windows的命令提示符(cmd)和PowerShell对环境变量的引用规则不一样,而且如果没预先设置这个变量,它会被解析成空字符串,导致参数混乱:
- 如果用cmd.exe,先执行这条命令设置模型架构(比如用inception_v3,你也可以换成mobilenet系列):
set ARCHITECTURE=inception_v3 - 如果用PowerShell,则用这个命令设置:
$Env:ARCHITECTURE = "inception_v3"
原因2:换行符使用错误
Windows下的命令行换行符和Linux/macOS不一样:
- cmd里要用
^作为换行续行符,而不是\ - PowerShell里要用反引号
`作为换行续行符
修正后的完整命令示例(以cmd为例):
python retrain.py ^ --bottleneck_dir=tf_files/bottlenecks ^ --how_many_training_steps=500 ^ --model_dir=tf_files/models/ ^ --summaries_dir=tf_files/training_summaries/%ARCHITECTURE% ^ --output_graph=tf_files/retrained_graph.pb ^ --output_labels=tf_files/retrained_labels.txt ^ --architecture=%ARCHITECTURE% ^ --image_dir=tf_files/flower_photos
额外检查
确认tf_files/flower_photos目录确实存在于你当前的工作目录下,也可以换成绝对路径避免歧义,比如:
--image_dir=C:\Users\YourName\projects\tf_files\flower_photos
2. 处理FutureWarning警告
这个警告是因为你安装的TensorFlow版本比retrain.py的代码更新,代码里用到了一些即将被废弃的API。解决方式有两种:
- 直接忽略:这个警告不会影响训练过程,只是提醒代码需要更新,如果你不介意的话可以不管它。
- 屏蔽警告:在retrain.py文件的最开头添加以下代码,就能自动过滤FutureWarning:
import warnings warnings.filterwarnings("ignore", category=FutureWarning) - 更新代码:如果想彻底解决,可以找到警告提示里提到的代码行,比如涉及numpy数组转换的部分,把
np.array()改成np.asarray(),或者按照TensorFlow的官方文档替换成新的API。
内容的提问来源于stack exchange,提问作者Sergio Del Pino




