如何在Colab上使用TPU进行学习转移

时间:2020-10-23 15:58:01

标签: tensorflow2.0 tpu

我正在尝试在Colab上使用Tensorflow 2自学迁移学习技术。

使用GPU可以正常工作,但众所周知,Google拥有其TPU,并且它们比GPU更快。

在Colab中,当我将“类型”从GPU切换为“ TPU”时,我将--use_tpu = true添加到以下命令中

python /content/models/research/object_detection/model_main_tf2.py \
--pipeline_config_path={pipeline_fname} \
--model_dir={model_dir} \
--checkpoint_dir={model_dir} \
--eval_timeout=60 \
--use_tpu=true

此脚本可在模型库中找到。

git clone --quiet https://github.com/tensorflow/models.git

但是,它不起作用,几分钟后,我收到以下错误消息:

tensorflow.python.framework.errors_impl.UnimplementedError:文件系统方案'[local]'未实现(文件:'/ content / driving-object-detection / training / train') 使用EagerExecutor执行操作时遇到。此错误会取消所有将来的操作并毒害其输出张量。 atexit._run_exitfuncs中的错误: 追溯(最近一次通话): 在async_wait中的第540行,文件“ /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/tpu_strategy.py” context.async_wait() 在async_wait中的文件“ /usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/context.py”,第2319行 context()。sync_executors() 在sync_executors中的文件“ /usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/context.py”,第658行 pywrap_tfe.TFE_ContextSyncExecutors(self._context_handle) tensorflow.python.framework.errors_impl.UnimplementedError:文件系统方案'[local]'未实现(文件:'/ content / driving-object-detection / training / train') 使用EagerExecutor执行操作时遇到。此错误会取消所有将来的操作并毒害其输出张量。 2020-10-23 15:53:03.698253:W ./tensorflow/core/distributed_runtime/eager/destroy_tensor_handle_node.h:57]删除远程张量句柄时忽略错误:无效参数:无法找到相关的张量remote_handle:Op ID:16039,输出数量:1 来自远程目标/ job:worker / replica:0 / task:0的其他GRPC错误信息: :{“ created”:“ @ 1603468383.693602692”,“ description”:“收到来自对等ipv4的错误:10.72.50.114:8470”,“ file”:“ external / com_github_grpc_grpc / src / core / lib / surface / call.cc” ,“ file_line”:1056,“ grpc_message”:“无法找到相关的张量remote_handle:操作ID:16039,输出编号:1”,“ grpc_status”:3}

我应该采取哪些其他步骤来准备TPU文件?正如我在数据集文件夹结构之前提到的那样,我遵循tensorflow.org并与GPU配合良好。

这不仅仅是添加“ --use_tpu = true”一样简单。有分步指南吗?还是有人可以帮忙一下?

谢谢

2 个答案:

答案 0 :(得分:0)

以下是指南:https://www.tensorflow.org/guide/tpu

TPU只能访问GCS存储桶中的数据集。

或者,您可以自己管理文件:加载本地文件,然后使用tf.data.Dataset.from_tensor_slices方法创建数据集。

答案 1 :(得分:0)

好吧,我了解到所有输入文件都必须在Google存储桶中。如果您的路径不是以gs://开头,则TPU将无法工作。