estimator

ValueError:GraphDef cannot be larger than 2GB.解决办法

江枫思渺然 提交于 2019-12-01 18:51:33
在使用TensorFlow 1.X版本的estimator的时候经常会碰到类似于 ValueError:GraphDef cannot be larger than 2GB 的报错信息,可能的原因是数据太大无法写入graph。 一般来说,常见的数据构建方法如下: def input_fn(): features, labels = (np.random.sample((100,2)), np.random.sample((100,1))) dataset = tf.data.Dataset.from_tensor_slices((features,labels)) dataset = dataset.shuffle(100000).repeat().batch(batch_size) return dataset ... estimator.train(input_fn) TensorFlow在读取数据的时候会将数据也写入Graph,所以当数据量很大的时候会碰到这种情况,之前做实验在多GPU的时候也会遇到这种情况,即使我把batch size调到很低。所以解决办法有两种思路,一直不保存graph,而是使用 feed_dict 的方式来构建input pipeline。 不写入graph 我的代码环境是TensorFlow1.14,所以我以这个版本为例进行介绍。

Tensorflow Estimator源码分析

淺唱寂寞╮ 提交于 2019-11-29 17:26:48
Estimator是Tensorflow的高阶API。除了Tensorflow官方定义的内置Estimator之外,用户也可以实现自定义的Estimator。 Estimator定义 Estimator的构造如下: def __init__(self, model_fn, # 定义模型,根据不同的模式分别定义训练、评估和预测的图。 model_dir=None, # 模型导出目录 config=None, # 配置参数 params=None, # 自定义Estimator的额外参数 warm_start_from=None): # 模型热启动 其中最核心的参数为 model_fn ,其接口如下 def _model_fn(features, # 特征,可以是Tensor或dict of Tensor labels, # 标签 mode, # 模式 params, # 自定义参数,即上面Estimator构造函数中的params config): # 配置参数 model_fn 会被Estimator多次调用,通过调用Tensorflow的layer来实现模型。通过模式字段(ModeKeys.TRAIN, ModeKeys.EVAL, ModeKeys.PREDICT)来判断是训练、评估还是预测阶段,分别构造不同的图。 model_fn 的返回结构为 EstimatorSpec

Spark ML Pipeline简介

北城余情 提交于 2019-11-28 22:35:15
Spark ML Pipeline基于DataFrame构建了一套High-level API,我们可以使用MLPipeline构建机器学习应用,它能够将一个机器学习应用的多个处理过程组织起来,通过在代码实现的级别管理好每一个处理步骤之间的先后运行关系,极大地简化了开发机器学习应用的难度。 Spark ML Pipeline使用DataFrame作为机器学习输入输出数据集的抽象。DataFrame来自Spark SQL,表示对数据集的一种特殊抽象,它也是Dataset(它是Spark 1.6引入的表示分布式数据集的抽象接口),但是DataFrame通过为数据集中每行数据的每列指定列名的方式来组织Dataset,类似于关系数据库中的表,同时还在底层处理做了非常多的优化。DataFrame可以基于不同的数据源进行构建,比如结构化文件、Hive表、数据库、RDD等。或者更直白一点表达什么是DataFrame,可以认为它等价于Dataset[Row],表示DataFrame是一个Row类型数据对象的Dataset。 机器学习可以被应用于各种数据类型,例如向量、文本、图片、结构化数据。Spark ML API采用DataFrame的理由是,来自Spark SQL中的DataFrame接口的抽象,可以支持非常广泛的类型,而且表达非常直观,便于在Spark中进行处理。所以说

Scikit-learn:scikit-learn快速教程及实例

微笑、不失礼 提交于 2019-11-27 21:06:31
http:// blog.csdn.net/pipisorry/article/details/52251305 scikit-learn 教程导航 简介:使用scikit-learn进行机器学习 机器学习:问题设定 加载样例数据集 学习和预测 模型持久化 惯例 统计学习教程 统计学习:scikit-learn中的配置和estimator对象 有监督学习:预测高维观测对象 模型选择:选择estimator和参数 无监督学习:寻找数据特征 连接所有流程 帮助 文本分析 设置 加载“Twenty Newsgroups”数据集 抽取text文件的特征 训练分类器 建立管道 评估测试集的表现 使用网格搜索调整参数 练习1:语言识别 练习2:影评情感分析 练习3:CLI文本分类应用 路在何方 选择合适的estimator 通常机器学习最难的一部分是选择合适的estimator。 不同的estimator适用于不同的数据集和问题。 在本节中,sklearn官方文档提供了一个图,可以快速地根据你的数据和问题选择合适的estimator。单击相应的区域还可以获得更具体的内容。 推荐到官网看看 flowchart ,很有意思,具有简单的普适性 其他的资源,视频和讨论 python 统计学新手 其他的教程 视频 具体参见官方文档 http://scikit-learn.org/stable