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

Tensorflow -无法在Estimator中对MirroredStrategy分发使用BasicLSTMCell

TensorFlow是一个开源的机器学习框架,由Google开发和维护。它提供了丰富的工具和库,用于构建和训练各种机器学习模型。TensorFlow支持分布式计算,可以在多个设备和计算资源上进行并行计算,以加速模型训练和推理过程。

Estimator是TensorFlow中的一个高级API,用于简化模型的构建、训练和评估过程。它提供了一种统一的接口,使得开发者可以更方便地使用TensorFlow进行模型开发。Estimator中的MirroredStrategy是一种分布式策略,用于在多个GPU上进行模型训练。

然而,由于BasicLSTMCell是TensorFlow中的一个低级API,不直接支持MirroredStrategy的分布式计算。这是因为BasicLSTMCell是基于单个设备的计算单元,无法直接在多个设备上进行并行计算。

如果想在Estimator中使用MirroredStrategy进行分布式训练,可以考虑使用更高级的LSTMCell实现,例如tf.contrib.rnn.MultiRNNCell或tf.keras.layers.LSTM。这些实现已经针对分布式计算进行了优化,可以在Estimator中与MirroredStrategy一起使用。

总结起来,无法在Estimator中对MirroredStrategy分发使用BasicLSTMCell,但可以考虑使用其他支持分布式计算的LSTMCell实现来替代。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【技术分享】改进官方TF源码,进行BERT文本分类的多卡训练

使用这一流程进行训练有一个很大的问题: 即使机器上有多块GPU,默认配置下,它只能使用一块GPU,无法充分利用GPU的算力。...一台有8块P40的机器上,使用tensorflow1.15和python3运行run_classifier.py,开始训练后,如果执行nvidia-smi命令查看GPU的使用情况,会得到这样的结果:...,难以排查具体错误原因,但我们可以初步得出结论,无法直接将MirroredStrategy应用到TPUEstimator。...改用普通EstimatorMirroredStrategy (失败) 由于我们是GPU机器上训练,不使用TPU,因此我们尝试将TPUEstimator改为普通tf.estimator.Estimator...BERT源码的AdamWeightDecayOptimizer,从而满足多卡训练的要求。

4.2K82

使用 TensorFlow 进行分布式训练

同步训练,所有工作进程都同步地输入数据的不同片段进行训练,并且会在每一步聚合梯度。异步训练,所有工作进程都独立训练输入数据并异步更新变量。...() 这会创建一个 MirroredStrategy 实例,该实例使用所有 TensorFlow 可见的 GPU,并使用 NCCL 进行跨设备通信。...这将比默认策略更多地使用分布策略机制,但不能像使用 MirroredStrategy 或 TPUStrategy 等策略那样充分发挥其作用。如果您想让代码表现地像没有策略,请使用默认策略。...例如,如果 2 个 GPU 使用 MirroredStrategy,大小为 10 的每个批次将被均分到 2 个 GPU ,每个 GPU 每步会接收 5 个输入样本。...如果您需要更多使用 Estimator 或 Keras 时的灵活性和训练循环的控制权,您可以编写自定义训练循环。例如,使用 GAN 时,您可能会希望每轮使用不同数量的生成器或判别器步骤。

1.5K20
  • TensorFlow 分布式 DistributedStrategy 之基础篇

    replica_fn 创建的任何变量都是使用 my_strategy 的策略创建的。...任何在作用域之外创建的变量都不会被分发。 请注意,任何在策略内部创建的变量都会捕获策略信息。因此, strategy.scope 之外这些变量的读写也可以无缝进行,而不需要用户进入 scope。...更新分布式变量的标准模式是: 传递给 tf.distribution.Strategy.run 的函数来计算得到一个(update, variable)列表。...如果无法做到,则将尝试最终输入进行分片,这样每个工作者将运行整个预处理管道,并且只收到自己的数据集分片。...利用输入流水线的信息则可以用来每个副本返回不同的输入子集(例如,分片输入流水线,使用不同的 input 源等)。

    1.2K10

    (数据科学学习手札40)tensorflow实现LSTM时间序列预测

    一、简介   上一篇我们较为详细地铺垫了关于RNN及其变种LSTM的一些基本知识,也提到了LSTM时间序列预测上优越的性能,本篇就将对如何利用tensorflow实际时间序列预测任务搭建模型来完成任务...,若你RNN及LSTM不甚了解,请移步上一篇数据科学学习手札39; 二、数据说明及预处理 2.1 数据说明   我们本文使用到的第一个数据来自R自带的数据集AirPassengers,这个数据集记录了...as tf from tensorflow.contrib import rnn import matplotlib.pyplot as plt from tensorflow.contrib.learn.python.learn.estimators.estimator...label='预测值') plt.plot(scale_inv(test_y), label='真实值') plt.title('反标准化之后') plt.legend() plt.show() 实际使用...as tf from tensorflow.contrib import rnn import matplotlib.pyplot as plt from tensorflow.contrib.learn.python.learn.estimators.estimator

    1.8K40

    Transformer模型训练教程02

    我们将使用TensorFlow框架,英文Wikipedia数据上预训练一个小型的Transformer模型。教程涵盖数据处理、环境配置、模型构建、超参数选择、训练流程等内容。...二、环境配置Transformer依赖较新的深度学习框架,这里我们使用TensorFlow 2.x版本。可以GPU服务器或笔记本上安装,也可以使用云服务的GPU资源。...五、模型训练先是加载已处理的数据,然后定义Transformer模型结构,编译并创建Estimator训练框架。...训练循环中,从tf.data队列按批次读取数据,采用teacher forcing方式。将模型输出与目标计算交叉熵损失。...可以GPU集群上进行分布式训练,启动多个进程同步更新模型。需要用到tf.distribute.MirroredStrategy等接口。

    1K00

    聊一聊深度学习分布式训练

    若采用参数平均法,训练的过程如下所示:基于模型的配置随机初始化网络模型参数 将当前这组参数分发到各个工作节点 每个工作节点,用数据集的一部分数据进行训练 将各个工作节点的参数的均值作为全局参数值 若还有训练数据没有参与训练...这在一定程度上减少了模型计算资源的需求。 inter-layer拆分 :这更好理解,模型做网络上的拆分。将每一层或者某几层放在一个worker上单独训练。...2、TensorFlow的分布式训练 TensorFlow主要的分布式训练的方法有三种: Customer Train Loop Estimator + Strategy Keras + Strategy...实际的开发工作,分布式的工作最好是交给框架,而工程师本身只需要关注任务模型的pipeline就行了。...Strategy是tensorflow根据分布式训练的复杂性,抽象出的多种分布式训练策略。TF1.x和TF2.x接口变化较大,不同版本名字可能不一样,以实际使用版本为准。

    3.1K61

    TensorFlow 分布式之 MirroredStrategy

    [源码解析] TensorFlow 分布式之 MirroredStrategy 目录 [源码解析] TensorFlow 分布式之 MirroredStrategy 1....其主要逻辑如下: MirroredStrategy 策略自动使用所有能被 TensorFlow 发现的 GPU 来做分布式训练,如果用户只想使用部分 GPU,则需要通过 devices 参数来指定使用哪些设备...同步的意义是:训练,每个工作者会在自己获取的输入数据上进行前向计算和反向计算,并且每个步骤结束时汇总梯度。只有当所有设备均更新本地变量后,才会进行下一轮训练。...能够想到的问题是: 单机上是多进程还是多线程训练? 如何分发模型?(这部分通过MirroredVariable来实现,我们已经在前面章节分析)。...基本上所有的分布式策略都通过某些 collective ops 和 cross device ops 来进行数据通讯,比如 MirroredStrategy 使用 CollectiveOps 来变量保持同步

    97110

    分布式TensorFlow编程模型演进

    分布式TensorFlow,参与分布式系统的所有节点或者设备统称为一个Cluster,一个Cluster包含很多Server,每个Server去执行一项Task,Server和Task是一一应的...使用分布式TensorFlow时,最常采用的分布式训练策略是数据并行,数据并行就是很多设备上放置相同的模型,TensorFlow称之为Replicated training,主要表现为两种模式:图内复制...,一个TensorFlow集群只有一个Master Service工作,它负责子图划分、Task的分发以及模型保存与恢复等,子图划分时,它会自动将模型参数分发到ps节点,将梯度计算分发到worker...另外,分布式TensorFlow应用程序与单机版TensorFlow应用程序的代码是两套,一般使用过程,用户都是先在单机上调试好基本逻辑,然后再部署到集群,部署分布式TensorFlow应用前,就需要将前面的单机版代码改写成分布式多机版...具体关于Estimator使用可以参考TensorFlow官方文档,讲的特别详细。

    1.8K30

    教程 | 用TensorFlow Estimator实现文本分类

    本文探讨了如何使用自定义的 TensorFlow Estimator、嵌入技术及 tf.layers 模块来处理文本分类任务,使用的数据集为 IMDB 评论数据集。...这些索引是通过一个数据管道中进行预处理之后得到的。这个预处理的步骤包括数据清洗、正则化,并且首先每个句子进行分词,接着根据频率构建一个字典每个单词进行索引。...可以使用一些辅助方法来创建他们,无论你的数据是存储一个「.csv」文件还是「pandas.DataFrame」,也无论它是否存储在内存。...一个 LSTM 按顺序处理整个文档,在其内存存储当前状态的同时也通过它的神经元序列进行递归操作。...得到预测结果 为了得到新的句子上的预测结果,我们可以使用Estimator」实例的「predict」方法,它能为每个模型加载最新的检查点并且不可见的示例进行评估。

    1.3K30

    教程 | 用TensorFlow Estimator实现文本分类

    选自ruder.io 作者:Sebastian Ruder 机器之心编译 参与:Geek AI、张倩 本文探讨了如何使用自定义的 TensorFlow Estimator、嵌入技术及 tf.layers...这些索引是通过一个数据管道中进行预处理之后得到的。这个预处理的步骤包括数据清洗、正则化,并且首先每个句子进行分词,接着根据频率构建一个字典每个单词进行索引。...可以使用一些辅助方法来创建他们,无论你的数据是存储一个「.csv」文件还是「pandas.DataFrame」,也无论它是否存储在内存。...一个 LSTM 按顺序处理整个文档,在其内存存储当前状态的同时也通过它的神经元序列进行递归操作。...得到预测结果 为了得到新的句子上的预测结果,我们可以使用Estimator」实例的「predict」方法,它能为每个模型加载最新的检查点并且不可见的示例进行评估。

    1.9K40

    教程 | 用TensorFlow Estimator实现文本分类

    本文探讨了如何使用自定义的 TensorFlow Estimator、嵌入技术及 tf.layers 模块来处理文本分类任务,使用的数据集为 IMDB 评论数据集。...这些索引是通过一个数据管道中进行预处理之后得到的。这个预处理的步骤包括数据清洗、正则化,并且首先每个句子进行分词,接着根据频率构建一个字典每个单词进行索引。...可以使用一些辅助方法来创建他们,无论你的数据是存储一个「.csv」文件还是「pandas.DataFrame」,也无论它是否存储在内存。...一个 LSTM 按顺序处理整个文档,在其内存存储当前状态的同时也通过它的神经元序列进行递归操作。...得到预测结果 为了得到新的句子上的预测结果,我们可以使用Estimator」实例的「predict」方法,它能为每个模型加载最新的检查点并且不可见的示例进行评估。

    97130

    昇腾Ascend 随记 —— TensorFlow 模型迁移

    通过迁移工具原始脚本进行AST语法树扫描,可自动分析原生的TensorFlow API昇腾AI处理器上的支持度,并将原始的TensorFlow训练脚本自动迁移成昇腾AI处理器支持的脚本,对于无法自动迁移的...三、TensorFlow AI 模型自动迁移详解 自动迁移是通过工具原始脚本进行AST语法树扫描,可自动分析原生的TensorFlow API昇腾AI处理器上的支持度,并将原始的TensorFlow...训练脚本自动迁移成昇腾AI处理器支持的脚本,对于无法自动迁移的API,可以参考工具输出的迁移报告,训练脚本进行相应的适配修改。...Estimator 迁移要点 ① Estimator迁移 EstimatorAPI属于TensorFlow的高阶API,2018年发布的TensorFlow1.10版本引入,它可极大简化机器学习的编程过程...类对象作为运行参数; 执行训练, Estimator 上调用训练方法 Estimator.train(),利用指定输入模型进行固定步数的训练。

    1.3K10

    TensorFlow的那些高级API

    Experiment、Estimator和DataSet框架以及它们之间的交互。 我们本文中将使用MNIST作为数据集。这是一个使用起来很简单的数据集,可以从TensorFlow官网获取到。...本示例,我们将使用Tensorflow可用的MNIST数据,并为其构建一个Dataset包装。...由于我们正在使用占位符,因此需要使用NumPy数据相关会话占位符进行初始化。可以通过创建一个可初始化的迭代器来实现这个。...TensorBoard可视化的评估准确度 我写这篇文章,是因为我在编写代码示例时,无法找到有关Tensorflow Estimator 、Experiment和Dataset框架太多的信息和示例。...你可以tf.contrib.learn.Head中找到一个版本。较新的Estimator框架也有一个原型版本。在这个例子我们不打算使用,因为它的开发非常不稳定。

    1.4K50
    领券