是否支持TPU进行分布式超参数搜索?我正在使用tensor2tensor
库,该库supports CloudML用于超参数搜索,即,以下对我有用的库可以在GPU上对语言模型进行超参数搜索:
t2t-trainer \
--model=transformer \
--hparams_set=transformer_tpu \
--problem=languagemodel_lm1b8k_packed \
--train_steps=100000 \
--eval_steps=8 \
--data_dir=$DATA_DIR \
--output_dir=$OUT_DIR \
--cloud_mlengine \
--hparams_range=transformer_base_range \
--autotune_objective='metrics-languagemodel_lm1b8k_packed/neg_log_perplexity' \
--autotune_maximize \
--autotune_max_trials=100 \
--autotune_parallel_trials=3
但是,当我尝试如下使用TPU时:
t2t-trainer \
--problem=languagemodel_lm1b8k_packed \
--model=transformer \
--hparams_set=transformer_tpu \
--data_dir=$DATA_DIR \
--output_dir=$OUT_DIR \
--train_steps=100000 \
--use_tpu=True \
--cloud_mlengine_master_type=cloud_tpu \
--cloud_mlengine \
--hparams_range=transformer_base_range \
--autotune_objective='metrics-languagemodel_lm1b8k_packed/neg_log_perplexity' \
--autotune_maximize \
--autotune_max_trials=100 \
--autotune_parallel_trials=5
我得到了错误:
googleapiclient.errors.HttpError: <HttpError 400 when requesting https://ml.googleapis.com/v1/projects/******/jobs?alt=json returned "Field: master_type Error: The specified machine type for masteris not supported in TPU training jobs: cloud_tpu"
答案 0 :(得分:3)
这里tensor2tensor库的作者之一。是的,这确实是一个错误,现在是fixed。感谢发现。我们将于本周在PyPI上发布固定版本,您当然可以从master
克隆并在本地安装。
您使用的命令现在应该可以正常工作。
答案 1 :(得分:2)
我相信tensor2tensor库中存在一个错误: https://github.com/tensorflow/tensor2tensor/blob/6a7ef7f79f56fdcb1b16ae76d7e61cb09033dc4f/tensor2tensor/utils/cloud_mlengine.py#L281
需要为Cloud ML Engine设置的是worker_type(而不是master_type)。
但是,要回答原始问题,可以,TPU应该支持HP Tuning,但是上面的错误与此正交。