Не удается заставить переменную среды $ TPU_NAME работать правильно - PullRequest
1 голос
/ 04 августа 2020

Я новенький ie! Я пытаюсь обучить модель BERT с нуля на ядре Kaggle. Не удается заставить сценарий BERT run_pretraining.py работать с TPU. Однако отлично работает на процессорах. Я предполагаю, что проблема связана с переменной окружения $ TPU_NAME.

!python run_pretraining.py \
--input_file='gs://xxxxxxxxxx/*' \
--output_dir=/kaggle/working/model/ \
--do_train=True \
--do_eval=True \
--bert_config_file=/kaggle/input/bert-bangla-test-config/config.json \
--train_batch_size=32 \
--max_seq_length=128 \
--max_predictions_per_seq=20 \
--num_train_steps=20 \
--num_warmup_steps=2 \
--learning_rate=2e-5 \
--use_tpu=True \
--tpu_name=$TPU_NAME

Ответы [ 2 ]

2 голосов
/ 05 августа 2020

Если скрипт использует tf.distribute.cluster_resolver.TPUClusterResolver() (https://www.tensorflow.org/api_docs/python/tf/distribute/cluster_resolver/TPUClusterResolver), вы можете просто создать экземпляр TPUClusterResolver без каких-либо аргументов, и он автоматически подберет TPU_NAME (https://github.com/tensorflow/tensorflow/blob/v2.3.0/tensorflow/python/tpu/client/client.py#L47).

0 голосов
/ 04 августа 2020

Хорошо, я нашел ладейное ie решение: P

run:

import os
os.environ

из возвращенного словаря, вы можете получить адрес. Просто скопируйте и вставьте это или что-то в этом роде. Он будет иметь вид «TPU_NAME»: «grp c: //xxxxxxx» .

...