上云无忧 > 文档中心 > 腾讯云计算加速套件 TACO Kit - TTensorflow 使用说明
计算加速套件TACO Kit
腾讯云计算加速套件 TACO Kit - TTensorflow 使用说明

文档简介:
操作场景: 本文介绍如何部署及使用 TensorFlow。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

操作场景

本文介绍如何部署及使用 TensorFlow。

操作步骤

准备环境

1. 购买云服务器 CVM 实例或高性能计算集群,详情请参见 通过购买页创建实例购买高性能计算集群实例
说明
建议创建实例时,选择公共镜像并勾选后台自动安装GPU驱动,实例将在系统启动后预装对应版本驱动。若您选择自定义镜像,则请手动安装 GPU 驱动。
2. 执行以下命令,安装 docker。
		
curl -s -L http://mirrors.tencent.com/install/GPU/taco/get-docker.sh | sudo bash
若您无法通过该命令安装,请尝试多次执行命令,或参见 Docker 官方文档 Install Docker Engine 进行安装。
3. 执行以下命令,安装 nvidia-docker2。
		
curl -s -L http://mirrors.tencent.com/install/GPU/taco/get-nvidia-docker2.sh | sudo bash
若您无法通过该命令安装,请尝试多次执行命令,或参见 NVIDIA 官方文档 Installation Guide & mdash 进行安装。

下载 docker 镜像

执行以下命令,下载 docker 镜像。
		
docker pull ccr.ccs.tencentyun.com/qcloud/taco-train:ttf115-cu112-cvm-0.4.1

启动 docker 镜像

执行以下命令,启动 docker 镜像。

		

docker run -it --rm --gpus all --shm-size=32g --ulimit memlock=-1 --ulimit stack=67108864

--name ttf1.15-gpu ccr.ccs.tencentyun.com/qcloud/taco-train:ttf115-cu112-cvm-0.4.1

启动后,您可执行以下命令查看 TTF 版本。
		
pip show ttensorflow

模型适配

动态 embedding

TF 原生的静态 Embedding 及 TTF 提供的动态 Embedding 代码如下:
TF 原生的静态 embedding
TTF 提供的动态 embedding
				
deep_dynamic_variables = tf.get_variable(
name="deep_dynamic_embeddings",
initializer=tf.compat.v1.random_normal_initializer(0, 0.005),
shape=[100000000, self.embedding_size])
deep_sparse_weights = tf.nn.embedding_lookup(
params=deep_dynamic_variables,
ids=ft_sparse_val,
name="deep_sparse_weights")
deep_embedding = tf.gather(deep_sparse_weights, ft_sparse_idx)
deep_embedding = tf.reshape(
deep_embedding,
shape=[self.batch_size, self.feature_num * self.embedding_size])
				
deep_dynamic_variables = tf.dynamic_embedding.get_variable(
name="deep_dynamic_embeddings",
initializer=tf.compat.v1.random_normal_initializer(0, 0.005),
dim=self.embedding_size,
devices=["/{}:0".format(FLAGS.device)],
init_size=100000000)
deep_sparse_weights = tf.dynamic_embedding.embedding_lookup(
params=deep_dynamic_variables,
ids=ft_sparse_val,
name="deep_sparse_weights")
deep_embedding = tf.gather(deep_sparse_weights, ft_sparse_idx)
deep_embedding = tf.reshape(
deep_embedding,
shape=[self.batch_size, self.feature_num * self.embedding_size])
TTF 仅对以下两部分进行替换,使用非常便利:
embedding 使用 tf.dynamic_embedding.get_variable()
lookup 使用 tf.dynamic_embedding.embedding_lookup()。 详细的 API 使用说明文档请参见 Module: tfra.dynamic_embedding

混合精度

混合精度既可以通过代码对优化器进行重写,也可通过修改环境变量实现。如下所示:
代码修改的方式
		
opt = tf.train.experimental.enable_mixed_precision_graph_rewrite(opt)
环境变量方式
		
export TF_ENABLE_AUTO_MIXED_PRECISION=1

XLA

XLA 既可以通过代码进行配置,也可通过修改环境变量实现。如下所示:
代码修改的方式
		
config = tf.ConfigProto()
config.graph_options.optimizer_options.global_jit_level = tf.OptimizerOptions.ON_1
sess = tf.Session(config=config)
环境变量的方式
		
TF_XLA_FLAGS=--tf_xla_auto_jit=1

Demo

在运行 Demo 前:
1. 执行以下命令,在实例中创建一个固定的位置存放数据集。
		
cd /ttensorflow/dynamic-embedding-demo
2. 执行以下命令,下载数据集。
		
bash download_dataset.sh
您可根据以下 Demo,快速了解并使用 TTF。

benchmark

该 Demo 用于对比测试动态 embedding 和原生静态 embedding 的性能。可依次执行以下命令,运行 Demo:
		
cd benchmark
// 按照默认配置运行
python train.py
// 每次修改batch size,需要将本地数据集缓存文件删掉
rm -f .index .data-00000-of-00001
python train.py --batch_size=16384
// 分别使用静态embedding和动态embedding进行DeepFM模型训练
python train.py --batch_size=16384 --is_dynamic=False
python train.py --batch_size=16384 --is_dynamic=True
// 调整Deep部分的fc层数
python train.py --batch_size=16384 --dnn_layer_num=12

ps

该 Demo 展示如何在 ps 模式下使用动态 embedding。可执行以下命令,运行 Demo:
		
cd ps && bash start.sh

Estimator

该 Demo 展示如何在 Estimator 模式下使用动态 embedding。可执行以下命令,运行 Demo:
		
cd estimator && bash start.sh
相似文档
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部