腾讯云计算加速套件TACO KitTTensorflow 使用说明
操作场景
本文介绍如何部署及使用 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 原生的静态 embeddingTTF 提供的动态 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_1sess = 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-00001python train.py --batch_size=16384
// 分别使用静态embedding和动态embedding进行DeepFM模型训练python train.py --batch_size=16384 --is_dynamic=Falsepython 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
官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
暂无评论,你要说点什么吗?