Tensorflow 图形执行权限被拒绝错误

问题描述 投票:0回答:1

我创建了一个包含 Tensorflow 2.11 的虚拟环境。我使用这个虚拟环境的Python作为spark驱动程序和执行程序Python。 venv zip 已作为存档添加到 PySpark 中。我正在从 s3 读取 tf 记录文件并创建一个名为

train_dataset
.

的 tf 数据集

打电话

model.fit
:

history = model.fit(
        train_dataset,
        epochs=epochs,
        steps_per_epoch=train_steps,
        validation_data=val_dataset,
        validation_steps=val_steps,
        callbacks=callbacks
    )

抛出以下错误:

File "/home/hadoop/environment/lib/python3.8/site-packages/keras/utils/traceback_utils.py", line 70, in error_handler
    raise e.with_traceback(filtered_tb) from None
  File "/home/hadoop/environment/lib/python3.8/site-packages/tensorflow/python/eager/execute.py", line 52, in quick_execute

    tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
**tensorflow.python.framework.errors_impl.PermissionDeniedError: 
Graph execution error:**


         [[{{node MultiDeviceIteratorGetNextFromShard}}]]
        [[RemoteCall]]
        [[IteratorGetNextAsOptional]] [Op:__inference_train_function_4621]

这是在 EMR 无服务器上运行的,我不确定为什么会弹出权限错误。任何建议/帮助表示赞赏。

pyspark virtualenv tensorflow2.0 python-3.8
1个回答
0
投票

从 s3 读取期间出现权限被拒绝错误。我尝试运行以下行并能够重现相同的错误:

import tensorflow as tf; tf.io.read_file("<s3_file_path>")

虽然我无法找出根本原因,但如here所述 在脚本顶部设置以下代码确实解决了问题:

import os; os.environ['S3_DISABLE_MULTI_PART_DOWNLOAD'] = '1' 

© www.soinside.com 2019 - 2024. All rights reserved.