首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TensorFlow在推荐系统中的分布式训练优化实践

美团内部深度定制的TensorFlow版本,基于原生TensorFlow 1.x架构与接口,从大规模稀疏参数的支持、训练模式、分布式通信优化、流水线优化、算子优化融合等多维度进行了深度优化。...PS并发优化 3.6 单位算力吞吐优化 4 大规模稀疏算法建模 5 总结与展望 1 背景 TensorFlow(下文简称TF)是谷歌推出的一个开源深度学习框架,在美团推荐系统场景中得到了广泛的使用。...图1 TensorFlow PS架构全链路监控 同时,在性能优化的过程中,会涉及到大量的性能测试和结果分析,这也是一个非常耗费人力的工作。...在Adam优化器中,它的参数优化过程需要两个β参与计算,在原生TensorFlow的实现中,这两个β是所有需要此优化器进行优化的Variabl(或HashTable)所共享的,并且会与第一个Variable...TensorFlow引擎中当使用多个优化器(稀疏与非稀疏)的时候,会出现重复构建反向计算图的问题,一定程度增加了额外计算,通过两张子图的拆分,恰好避免了这个问题。

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Tensorflow中的梯度裁剪

    本文简单介绍梯度裁剪(gradient clipping)的方法及其作用,不管在 RNN 或者在其他网络都是可以使用的,比如博主最最近训练的 DNN 网络中就在用。...常见的 gradient clipping 有两种做法根据参数的 gradient 的值直接进行裁剪根据若干参数的 gradient 组成的 vector 的 L2 norm 进行裁剪第一种做法很容易理解...关于 gradient clipping 的作用可更直观地参考下面的图,没有 gradient clipping 时,若梯度过大优化算法会越过最优点。?...而在一些的框架中,设置 gradient clipping 往往也是在 Optimizer 中设置,如 tensorflow 中设置如下optimizer = tf.train.AdamOptimizer...tf.clip_by_value(grad, -1., 1.), var) for grad, var in gvs]train_op = optimizer.apply_gradients(capped_gvs)Keras 中设置则更为简单

    2.8K30

    【Tensorflow】Dataset 中的 Iterator

    Tensorflow 现在将 Dataset 作为首选的数据读取手段,而 Iterator 是 Dataset 中最重要的概念。...在 Tensorflow 的程序代码中,正是通过 Iterator 这根水管,才可以源源不断地从 Dataset 中取出数据。 但为了应付多变的环境,水管也需要变化,Iterator 也有许多种类。...能够接不同水池的水管,可重新初始化的 Iterator 有时候,需要一个 Iterator 从不同的 Dataset 对象中读取数值。...Tensorflow 针对这种情况,提供了一个可以重新初始化的 Iterator,它的用法相对而言,比较复杂,但好在不是很难理解。...3、可重新初始化的 Iterator,它可以对接不同的 Dataset,也就是可以从不同的 Dataset 中读取数据。

    1.6K30

    TensorFlow中的计算图

    其中,前向过程由用户指定,包括模型定义,目标函数、损失函数、激活函数的选取等;后向的计算过程,包括计算梯度,更新梯度等,在优化器中已经由TensorFlow实现,用户不必关心。...参数更新操作:根据优化器的优化算法,结合梯度更新相应的模型参数。 更新后的参数:更新后的模型参数,用于模型的下一轮训练。...3 计算图的运行 TensorFlow中可以定义多个计算图,不同计算图上的张量和运算相互独立,因此每一个计算图都是一个独立的计算逻辑。...依次执行队列中的每一个节点,执行成功之后将此节点输出指向的节点的入度减1,更新哈希表中对应节点的入度。 重复(2)和(3),直至可执行队列为空。...对于步骤(3)来说,可执行队列中的节点在资源允许的情况下,是可以并行执行。TensorFlow有灵活的硬件调度机制,来高效利用资源。

    2.1K10

    tensorflow中的slim函数集合

    参数:作用域:筛选要返回的变量的可选作用域。后缀:用于过滤要返回的变量的可选后缀。返回值:集合中具有范围和后缀的变量列表。...参数:作用域:筛选要返回的变量的可选作用域。后缀:用于过滤要返回的变量的可选后缀。返回值:具有范围和后缀的可训练集合中的变量列表。...:train_op,指定优化算法logdir,指定训练数据保存文件夹save_summaries_secs,指定每隔多少秒更新一次日志文件(对应 tensorboard 刷新一次的时间)save_interval_secs...参数:scope:筛选要返回的变量的可选作用域suffix:用于过滤要返回的变量的可选后缀返回值:集合中具有范围和后缀的变量列表slim.get_or_create_global_step()get_or_create_global_step...**kwargs: keyword=value,它将为list_ops中的每个操作定义默认值。所有的ops都需要接受给定的一组参数。

    1.6K30

    TensorFlow中的那些高级API

    尽管Keras的API目前正在添加到TensorFlow中去,但TensorFlow本身就提供了一些高级构件,而且最新的1.3版本中也引入了一些新的构件。...在本示例中,我们将使用在Tensorflow中可用的MNIST数据,并为其构建一个Dataset包装。...有关Estimator、Experiment和Dataset框架的注意点 有一篇名为《TensorFlow Estimators:掌握高级机器学习框架中的简单性与灵活性》的文章描述了Estimator框架的高级别设计...在较新的Estimator框架中也有一个原型版本。在这个例子中我们不打算使用,因为它的开发非常不稳定。 本文使用了TensorFlow slim框架来定义模型的架构。...Slim是一个用于定义TensorFlow中复杂模型的轻量级库。它定义了预定义的架构和预先训练的模型。

    1.4K50

    如何修复TensorFlow中的`ResourceExhaustedError

    如何修复TensorFlow中的ResourceExhaustedError 摘要 大家好,我是默语,擅长全栈开发、运维和人工智能技术。...在本篇博客中,我们将深入探讨如何修复TensorFlow中的ResourceExhaustedError。这个错误通常在处理大规模数据集或复杂模型时出现,了解并解决它对顺利进行模型训练非常重要。...优化代码和配置 3.1 使用混合精度训练 原因:混合精度训练可以有效减少内存使用,并加快训练速度。 解决方案:使用TensorFlow的混合精度训练API。...原因:数据加载过程中的内存使用优化不当也可能导致内存不足。...小结 在这篇文章中,我们详细探讨了TensorFlow中的ResourceExhaustedError错误的成因,并提供了多种解决方案,包括减小批量大小、手动释放内存、使用混合精度训练、分布式训练等。

    10910
    领券