#tensorflow2.0 #tpu
#tensorflow2.0 #tpu
Вопрос:
Я пытаюсь научить себя методам передачи обучения с использованием Tensorflow 2 на Colab.
Использование GPU работает нормально, но, как всем известно, у Google есть свои TPU, и они быстрее, чем графические процессоры.
В Colab, когда я переключаю «Type» с 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
Этот скрипт находится в репозитории Models.
git clone — тихий https://github.com/tensorflow/models.git
Однако он не работает, и через несколько минут я получаю следующее сообщение об ошибке:
tensorflow.python.framework.errors_impl.UnimplementedError: File system scheme '[local]' **not implemented (file: '/content/driving-object-detection/training/train')**
Encountered when executing an operation using EagerExecutor. This error cancels all future operations and poisons their output tensors.
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/tpu_strategy.py", line 540, in async_wait
context.async_wait()
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/context.py", line 2319, in async_wait
context().sync_executors()
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/context.py", line 658, in sync_executors
pywrap_tfe.TFE_ContextSyncExecutors(self._context_handle)
tensorflow.python.framework.errors_impl.UnimplementedError: File system scheme '[local]' not implemented (file: '/content/driving-object-detection/training/train')
Encountered when executing an operation using EagerExecutor. This error cancels all future operations and poisons their output tensors.
2020-10-23 15:53:03.698253: W ./tensorflow/core/distributed_runtime/eager/destroy_tensor_handle_node.h:57] Ignoring an error encountered when deleting remote tensors handles: Invalid argument: Unable to find the relevant tensor remote_handle: Op ID: 16039, Output num: 1
Additional GRPC error information from remote target /job:worker/replica:0/task:0:
:{"created":"@1603468383.693602692","description":"Error received from peer ipv4:10.72.50.114:8470","file":"external/com_github_grpc_grpc/src/core/lib/surface/call.cc","file_line":1056,"grpc_message":"Unable to find the relevant tensor remote_handle: Op ID: 16039, Output num: 1","grpc_status":3}
Какие дополнительные шаги я должен предпринять, чтобы подготовить файлы для TPU? Как я упоминал перед dataset, структура папок, я следовал tensorflow.org и хорошо работает с графическим процессором.
Это не так просто, как добавить «—use_tpu=true». Есть ли пошаговое руководство или кто-нибудь может пролить свет?
Ответ №1:
Вот руководство: https://www.tensorflow.org/guide/tpu .
TPU может получать доступ только к наборам данных из групп GCS.
В качестве альтернативы вы можете управлять файлами самостоятельно: загрузить локальный файл, а затем создать набор данных с помощью tf.data.Dataset.from_tensor_slices
метода.
Комментарии:
1. Спасибо, но это руководство не очень прямолинейно. в нем не рассматривается, как использовать —use_tpu=true с model_main_tf2.py сценарий. У меня есть папка images, .xml для всех изображений, файлы tfrecords: train.record и test.record. pipeline.conf обновлен в соответствии с моими новыми классами и моделью. Если TPU может получать доступ к наборам данных только из сегментов GCS, это хорошее начало, должен ли я просто переместить файлы в корзину и вызвать model_main_tf2.py —input gs://myfiles_bucket —use_tpu=true У кого-нибудь есть записная книжка Jupyter, чтобы я мог посмотреть, как вы это сделали?
Ответ №2:
Хорошо, я узнал, что все входные файлы должны находиться в хранилище Google. Если ваш путь не начинается с gs://, TPU не будет работать.