训练QuickDraw模型时访问TFRecords遭遇权限被拒错误求助
排查Google QuickDraw TFRecords训练权限被拒问题
从你给出的错误日志来看,核心问题是TensorFlow无法访问指定的TFRecord数据集路径,报错的关键信息是:
NewRandomAccessFile failed to Create/Open: A:\Code\Machine Learning\Software Engineering project\Quick Draw\TFRecord Train dataset : Access is denied. ; Input/output error
我来帮你一步步拆解可能的原因和解决办法:
1. 先确认路径指向的是文件而非文件夹
从路径名称TFRecord Train dataset来看,这更像一个文件夹,但tf.data.TFRecordDataset()需要的是具体的TFRecord文件路径(比如xxx.tfrecord),或者用通配符匹配文件夹下的所有TFRecord文件(比如r"A:\...\TFRecord Train dataset\*.tfrecord")。
你可以打开Train_Model.py找到第70行附近的input_func函数,检查创建dataset时传入的路径是不是直接指向了文件夹——如果是,TensorFlow会把它当作文件尝试打开,自然会触发权限错误。
2. 检查Windows文件/文件夹权限
- 右键点击
TFRecord Train dataset文件夹,选择「属性」→「安全」标签,确认当前登录用户拥有读取权限(包括“读取和执行”、“列出文件夹内容”、“读取”)。如果权限缺失,点击「编辑」为当前用户添加对应权限。 - 尝试以管理员身份运行你的Python IDE(比如右键IDLE图标,选择「以管理员身份运行」),再执行训练脚本。部分系统路径下的文件需要管理员权限才能正常访问。
3. 修复路径格式问题
Windows路径中的空格和特殊字符有时会导致解析异常:
- 建议把路径中的空格替换成下划线,比如将
TFRecord Train dataset改为TFRecord_Train_Dataset,同时同步更新代码中的路径。 - 在Python代码中使用原始字符串定义路径,避免转义字符干扰,示例:
dataset_path = r"A:\Code\Machine Learning\Software Engineering project\Quick Draw\TFRecord_Train_Dataset\*.tfrecord"
4. 排除文件被占用的情况
如果有其他程序正在使用该文件夹或其中的TFRecord文件(比如文件资源管理器打开着该目录、杀毒软件正在扫描、其他进程在读写文件),也会导致TensorFlow无法访问。可以关闭不必要的程序,或者重启电脑后再尝试训练。
如果以上步骤都试过还是无法解决,你可以补充代码中创建TFRecord数据集的相关片段,我再帮你进一步排查!
内容的提问来源于stack exchange,提问作者Shantanu Shinde
相关产品推荐
相关产品推荐

