使用 AI Platform Training 中的内置算法进行训练时,您无需编写任何训练代码即可提交数据集并训练模型。本页面介绍了内置 NCF 算法的工作原理及使用方法。
概览
此内置算法仅进行训练:
- 训练:AI Platform Training 使用您提供的数据集和模型参数,通过 Tensorflow 的 NCF 实现运行训练。
限制
使用内置 NCF 算法进行训练时不支持以下功能:
- 自动数据预处理。此版本的 NCF 要求用于训练和输出的输入数据均采用 TFRecord 的形式。必须使训练应用自动处理未格式化的输入。
支持的机器类型
以下是系统支持的 AI Platform Training 容量层级和机器类型:
BASIC
容量层级BASIC_GPU
容量层级BASIC_TPU
容量层级CUSTOM
容量层级和 AI Platform Training 所支持的任何 Compute Engine 机器类型。CUSTOM
容量层级和以下任何旧版机器类型:standard
large_model
complex_model_s
complex_model_m
complex_model_l
standard_gpu
standard_p100
standard_v100
large_model_v100
complex_model_m_gpu
complex_model_l_gpu
complex_model_m_p100
complex_model_m_v100
complex_model_l_v100
TPU_V2
(8 个核心)
建议使用可使用 TPU 或 GPU 的机器类型。
设置输入数据的格式
在训练模型之前,确保输入和评估数据采用 TFRecord 的形式。
检查 Cloud Storage 存储分区权限
要存储数据,请使用用于运行 AI Platform Training 作业的同一 Google Cloud 项目中的 Cloud Storage 存储分区。否则,需要向 AI Platform Training 授予对存储数据的 Cloud Storage 存储分区的访问权限。
提交 NCF 训练作业
本部分介绍如何使用内置 NCF 算法提交训练作业。
您可以在 Google Cloud 控制台中找到每个超参数的简要说明,还可以在内置 NCF 算法参考文档中查看更全面的说明。
控制台
转到 Google Cloud 控制台中的 AI Platform Training“作业”页面:
点击新建训练作业按钮。从下方显示的选项中,点击内置算法训练。
在创建新的训练作业页面上,选择 NCF,然后点击下一步。
如需详细了解所有可用的参数,请点击 Google Cloud 控制台中的链接,查看内置 NCF 参考文档了解详情。
gcloud
为作业设置环境变量:
# Specify the name of the Cloud Storage bucket where you want your # training outputs to be stored, and the Docker container for # your built-in algorithm selection. BUCKET_NAME='BUCKET_NAME' IMAGE_URI='gcr.io/cloud-ml-algos/ncf:latest' # Specify the Cloud Storage path to your training input data. DATA_DIR='gs://$BUCKET_NAME/ncf_data' DATE="$(date '+%Y%m%d_%H%M%S')" MODEL_NAME='MODEL_NAME' JOB_ID="${MODEL_NAME}_${DATE}" JOB_DIR="gs://${BUCKET_NAME}/algorithm_training/${MODEL_NAME}/${DATE}"
请替换以下内容:
- BUCKET_NAME:要存储训练输出的 Cloud Storage 存储桶的名称。
- MODEL_NAME:模型的名称,用于标识模型工件在 Cloud Storage 存储桶中的存储位置。
使用
gcloud ai-platform jobs training submit
提交训练作业。请调整此通用示例,以使用您的数据集:gcloud ai-platform jobs submit training $JOB_ID \ --master-image-uri=$IMAGE_URI --scale-tier=BASIC_TPU --job-dir=$JOB_DIR \ -- \ --train_dataset_path=${DATA_DIR}/training_cycle_*/* \ --eval_dataset_path=${DATA_DIR}/eval_data/* \ --input_meta_data_path=${DATA_DIR}/metadata \ --learning_rate=3e-5 \ --train_epochs=3 \ --eval_batch_size=160000 \ --learning_rate=0.00382059 \ --beta1=0.783529 \ --beta2=0.909003 \ --epsilon=1.45439e-07 \ --num_factors=64 \ --hr_threshold=0.635 \ --keras_use_ctl=true \ --layers=256,256,128,64 \
使用
gcloud
查看日志,从而监控训练作业的状态。请参阅gcloud ai-platform jobs describe
和gcloud ai-platform jobs stream-logs
。gcloud ai-platform jobs describe ${JOB_ID} gcloud ai-platform jobs stream-logs ${JOB_ID}
深入学习资源
- 详细了解 Cloud TPU。
- 详细了解 TensorFlow 模型集合。