Tensorflow API 讲解——tf.estimator.Estimator

零基础菜鸟的Python+TensorFlow之旅(一)——初识Tensor & Flow 由于TensorFlow中的一些设计理念比较先进,所以很多同学会在一些知识的理解上产生困扰,本人作为一名从教师转行的程序猿,深知各位同学在这条道路上的难言之痛,于是决定开设此教程,为大家提供最简单最直接最粗暴的讲解,帮助各位同学以最轻松最愉快最爽朗的方式学会TensorFlow这个必备大杀器! 阅读详情

class Estimator(builtins.object)
#介绍
Estimator 类,用来训练和验证 TensorFlow 模型。
Estimator 对象包含了一个模型 model_fn,这个模型给定输入和参数,会返回训练、验证或者预测等所需要的操作节点。
所有的输出(检查点、事件文件等)会写入到 model_dir,或者其子文件夹中。如果 model_dir 为空,则默认为临时目录。
config 参数为 tf.estimator.RunConfig 对象,包含了执行环境的信息。如果没有传递 config,则它会被 Estimator 实例化,使用的是默认配置。
params 包含了超参数。Estimator 只传递超参数,不会检查超参数,因此 params 的结构完全取决于开发者。
Estimator 的所有方法都不能被子类覆盖(它的构造方法强制决定的)。子类应该使用 model_fn 来配置母类,或者增添方法来实现特殊的功能。
Estimator 不支持 Eager Execution(eager execution能够使用Python 的debug工具、数据结构与控制流。并且无需使用placeholder、session,计算结果能够立即得出)。
#类内方法

#####1、__init__(self, model_fn, model_dir=None, config=None, params=None, warm_start_from=None)
构造一个 Estimator 的实例.。
参数:

  • model_fn: 模型函数。函数的格式如下:
    参数:
    1、features: 这是 input_fn 返回的第一项(input_fn 是 train, evaluate 和 predict 的参数)。类型应该是单一的 Tensor 或者 dict。
    2、labels: 这是 input_fn 返回的第二项。类型应该是单一的 Tensor 或者 dict。如果 mode 为 ModeKeys.PREDICT,则会默认为 labels=None。如果 model_fn 不接受 mode,model_fn 应该仍然可以处理 labels=None。
    3、mode: 可选。指定是训练、验证还是测试。参见 ModeKeys。
    4、params: 可选,超参数的 dict。 可以从超参数调整中配置 Estimators。
    5、config: 可选,配置。如果没有传则为默认值。可以根据 num_ps_replicas 或 model_dir 等配置更新 model_fn。
    返回:
    EstimatorSpec
  • model_dir: 保存模型参数、图等的地址,也可以用来将路径中的检查点加载至 estimator 中来继续训练之前保存的模型。如果是 PathLike, 那么路径就固定为它了。如果是 None,那么 config 中的 model_dir 会被使用(如果设置了的话),如果两个都设置了,那么必须相同;如果两个都是 None,则会使用临时目录。
  • config: 配置类。
  • params: 超参数的dict,会被传递到 model_fn。keys 是参数的名称,values 是基本 python 类型。
  • warm_start_from: 可选,字符串,检查点的文件路径,用来指示从哪里开始热启动。或者是 tf.estimator.WarmStartSettings 类来全部配置热启动。如果是字符串路径,则所有的变量都是热启动,并且需要 Tensor 和词汇的名字都没有变。

异常:

  • RuntimeError: 开启了 eager execution

  • ValueError:model_fn 的参数与 params 不匹配

  • ValueError:这个函数被 Estimator 的子类所覆盖
    #####2、train(self, input_fn, hooks=None, steps=None, max_steps=None, saving_listeners=None)
    根据所给数据 input_fn, 对模型进行训练。
    参数:

  • input_fn:一个函数,提供由小 batches 组成的数据, 供训练使用。必须返回以下之一:
    1、一个 'tf.data.Dataset'对象:Dataset的输出必须是一个元组 (features, labels),元组要求如下。
    2、一个元组 (features, labels):features 是一个 Tensor 或者一个字典(特征名为 Tensor),labels 是一个 Tensor 或者一个字典(特征名为 Tensor)。features 和 labels 都被 model_fn 所使用,应该符合 model_fn 输入的要求。

  • hooks:SessionRunHook 子类实例的列表。用于在训练循环内部执行。

  • steps:模型训练的步数。如果是 None, 则一直训练,直到input_fn 抛出了超过界限的异常。steps 是递进式进行的。如果执行了两次训练(steps=10),则总共训练了 20 次。如果中途抛出了越界异常,则训练在 20 次之前就会停止。如果你不想递进式进行,请换为设置 max_steps。如果设置了 steps,则 max_steps 必须是 None。

  • max_steps:模型训练的最大步数。如果为 None,则一直训练,直到input_fn 抛出了超过界限的异常。如果设置了 max_steps, 则 steps 必须是 None。如果中途抛出了越界异常,则训练在 max_steps 次之前就会停止。执行两次 train(steps=100) 意味着 200 次训练;但是,执行两次 train(max_steps=100) 意味着第二次执行不会进行任何训练,因为第一次执行已经做完了所有的 100 次。

  • saving_listeners:CheckpointSaverListener 对象的列表。用于在保存检查点之前或之后立即执行的回调函数。

返回:
self:为了链接下去。
异常:
ValueError:steps 和 max_steps 都不是 None
ValueError:steps 或 max_steps <= 0
#####3、evaluate(self, input_fn, steps=None, hooks=None, checkpoint_path=None, name=None)
根据所给数据 input_fn, 对模型进行验证。
对于每一步,执行 input_fn(返回数据的一个 batch)。
一直进行验证,直到:

  • steps 个 batches 进行完毕,或者
  • input_fn 抛出了越界异常(OutOfRangeError 或 StopIteration)

参数:

  • input_fn:一个函数,构造了验证所需的输入数据,必须返回以下之一:
    1、一个 'tf.data.Dataset'对象:Dataset的输出必须是一个元组 (features, labels),元组要求如下。
    2、一个元组 (features, labels):features 是一个 Tensor 或者一个字典(特征名为 Tensor),labels 是一个 Tensor 或者一个字典(特征名为 Tensor)。features 和 labels 都被 model_fn 所使用,应该符合 model_fn 输入的要求。
  • steps:模型验证的步数。如果是 None, 则一直验证,直到input_fn 抛出了超过界限的异常。
  • hooks:SessionRunHook 子类实例的列表。用于在验证内部执行。
  • checkpoint_path: 用于验证的检查点路径。如果是 None, 则使用 model_dir 中最新的检查点。
  • name:验证的名字。使用者可以针对不同的数据集运行多个验证操作,比如训练集 vs 测试集。不同验证的结果被保存在不同的文件夹中,且分别出现在 tensorboard 中。

返回:
返回一个字典,包括 model_fn 中指定的评价指标、global_step(包含验证进行的全局步数)
异常:
ValueError:如果 step 小于等于0
ValueError:如果 model_dir 指定的模型没有被训练,或者指定的 checkpoint_path 为空。
#####4、predict(self, input_fn, predict_keys=None, hooks=None, checkpoint_path=None, yield_single_examples=True)
对给出的特征进行预测
参数:

  • input_fn:一个函数,构造特征。预测一直进行下去,直到 input_fn 抛出了越界异常(OutOfRangeError 或 StopIteration)。函数必须返回以下之一:
    1、一个 'tf.data.Dataset'对象:Dataset的输出和以下的限制相同。
    2、features:一个 Tensor 或者一个字典(特征名为 Tensor)。features 被 model_fn 所使用,应该符合 model_fn 输入的要求。
    3、一个元组,其中第一项为 features。
  • predict_keys:字符串列表,要预测的键值。当 EstimatorSpec.predictions 是一个 dict 时使用。如果使用了 predict_keys, 那么剩下的预测值会从字典中过滤掉。如果是 None,则返回全部。
  • hooks:SessionRunHook 子类实例的列表。用于在预测内部回调。
  • checkpoint_path: 用于预测的检查点路径。如果是 None, 则使用 model_dir 中最新的检查点。
  • yield_single_examples:If False, yield the whole batch as returned by the model_fn instead of decomposing the batch into individual elements. This is useful if model_fn returns some tensors whose first dimension is not equal to the batch size.

返回:
predictions tensors 的值
异常:
ValueError:model_dir 中找不到训练好的模型。
ValueError:预测值的 batch 长度不同,且 yield_single_examples 为 True。
ValueError:predict_keys 和 predictions 之间有冲突。例如,predict_keys 不是 None,但是 EstimatorSpec.predictions 不是一个 dict。

Oracle 数据库中的序列 Oracle 数据库中的序列 在oracle中sequence就是序号,每次取的时候它会自动增加。sequence与表没有关系 1.create sequence 复制代码 create sequence SEQ_LOG_ID minvalue 1 --增长最小值 maxvalue 9999999999 --增长最大值,也可以设置NOMAXvalue – 不设置最大值 start with 1... 阅读详情

相关推荐

Tensorflow中tf.ConfigProto()的用法详解

今天小编就为大家分享一篇Tensorflow中tf.ConfigProto()的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Tensorflow API 讲解——tf.layers.conv2d

conv2d(inputs, filters, kernel_size, strides=(1, 1), padding='valid', data_format='channels_last', dilation_rate=(1, 1), activation=None, use_bias=True, kernel_initia...

HappyRocking的专栏 2万+

机场数据治理系列介绍(1):机场行业数据中台中的数据管理顶层设计方案

民航机场行业的数据中台中,有关数据管理顶层设计方案需要结合机场行业的业务特点和技术需求进行具体的设计,今日我们简要考量设计提供一个参考方案:

机场信息系统研究员的专栏 1604

Tensorflow一些常用基本概念与函数(1)

摘要:本文主要对tf的一些常用概念与方法进行描述。

lenbow的博客 15万+

京东商品多维特征提取:基于时空大模型的实时库存预测接口设计

在电商行业,库存管理是供应链的核心环节之一。库存水平过高会导致资金占用、仓储成本增加,而库存水平过低则可能引发缺货风险,影响客户满意度和平台声誉。京东作为中国领先的电商平台,拥有海量的商品数据和复杂的业务场景,传统的库存预测方法难以应对市场动态变化和业务需求。时空大模型作为一种融合时间序列分析和空间特征提取的前沿技术,能够捕捉商品多维特征在时空维度上的变化规律,为实时库存预测提供更精准的决策依据。

FB13713612741的博客 953

2025华东杯A/B/C题解题思路+可运行代码参考

这些因素包括但不限于:助滑坡的坡度、运动员的质量、滑雪板的接触面与雪地的摩擦力、空气阻力系数、运动员的体型和衣物形态等。助滑坡是运动员滑行至起跳台前的最后一段坡道,这一段坡道的坡度、长度和运动员的姿势会直接影响到起跳时的初始速度。运动员的滑行速度不仅受助滑坡的坡度影响,还受到摩擦力、空气阻力和重力等多方面因素的影响。通过合理的姿势调整,运动员能够有效减少空气阻力,增加身体的重力加速度,进而提升滑行速度。助滑坡的角度通常介于10°到12°之间,而运动员的滑行速度将受到重力、摩擦力和空气阻力的共同作用。

qq_52590045的博客 1796

Tensorflow常见API讲解(带例子)

目录 1.tf.random.set_random_seed(seed)/tf.set_random_seed(seed) 2. tf.layers.dense() 3.tf.placeholder() 4.tf.train.Saver() 5.print_tensors_in_checkpoint_file() 6.tf.slice() 7.tf.split() 8.tf....

hlp4207的博客 1713

编程语言的未来走向:趋势、挑战与机遇

同时,鼓励他们接触和掌握一些专业领域的开发工具和技术框架,比如Web开发中的JavaScript、React.js,数据分析的Python(Pandas, NumPy, Matplotlib等),以及人工智能和机器学习领域的TensorFlow、PyTorch等。当前,全球范围内正积极推动编程教育的普及化,从儿童启蒙阶段到高等教育阶段,乃至终身学习的过程中,如何优化编程语言的教学方法、提高教学质量,并将其广泛应用于不同领域,是教育者与政策制定者面临的重大课题。未来,编程语言的多样化和包容性将会继续加强。

zrc_xiaoguo的博客 1826

tensorflow serving warmup

warmup是通过模型启动时加载${model}/${version}/assets.extra/tf_serving_warmup_requests达到热启动的目的。 如下为基于inception模型的warmup生成程序。 import tensorflow as tf from tensorflow_serving.apis import model_pb2 from tensorflo...

hzhj的博客 2373

【cocos2dx面试题干货】--2021年最新cocos2dx面试干货(引擎篇)

【cocos2dx面试题干货】--2020年度最新cocos2dx面试干货(引擎篇 ) 大家好,我是Lampard~~ 经过春招一番艰苦奋战之后,我终于是进入了心仪的公司。 今天给大家分享一下我在之前精心准备的一套面试知识。 由于我面试的岗位是cocos2dx的开发岗,今天就先给大家分享一下引擎方面的知识。 本人亲测80%的引擎相关题目都...

Lampard的博客 1万+

别再死记硬背公式了!用ADS手把手教你仿真一个4GHz镜像抑制混频器(附完整工程文件)

本文详细介绍了使用Keysight ADS软件设计和仿真4GHz镜像抑制混频器的完整流程。从理论分析到实际工程实现,涵盖分支线耦合器设计、二极管建模、噪声系数仿真及性能优化等关键步骤,帮助工程师摆脱公式死记硬背,掌握实用的射频电路设计技能。附完整工程文件,可直接应用于实际项目开发。

weixin_28683391的博客 494

oracle从序列中查最大id,Oracle序列详解

1.基本语法(1) 创建序列命CREATE SEQUENCE [user.]sequence_name[INCREMENT BY n][START WITH n][maxvalue n | nomaxvalue][minvalue n | nominvalue][CYCLE|NOCYCLE][CACHE|NOCACHE][ORDER|NOORDER];INCREMENT BY: 指定序列号之间的间...

weixin_39609407的博客 1807

基于卷积神经网络的球罐结构损伤识别

球罐结构损伤识别方法研究 摘要:本研究针对球形储罐(球罐)结构健康监测需求,提出基于卷积神经网络(CNN)的损伤识别方法。通过ANSYS有限元仿真构建包含5种裂纹深度的500组振动信号数据集,设计包含卷积层、池化层和全连接层的CNN网络架构。实验结果表明,该方法在训练集和测试集上分别达到98.4%和96.0%的准确率,验证了其在球罐焊缝损伤识别中的有效性。研究提供了完整的MATLAB实现代码,为球罐结构智能化监测提供了技术参考。 关键词:球罐结构;卷积神经网络;损伤识别;振动信号;深度学习

AI的内部世界的博客 120

Oracle 序列

Oracle 是通过序列来处理自增长的列 1.建立序列 (sequence) 例:创建一个序列i_id_seq第一个序列号为50,增量为1,最大值为100 create sequence i_id_seq start with 50 increment by 1 maxvalue 100 cache 10 /*注:cache用于指定在内存中可以预分配的序列号个数   cache 1

tiegenZ的博客 1008

【常见开源库的二次开发】基于openssl的加密与解密——openssl认识与配置(一)

OpenSSL 是一个开源的软件库,它提供了一系列加密工具和协议,主要用于实现安全通信,如在网络上的数据传输。它支持多种加密算法,包括对称加密、非对称加密、散列函数、伪随机数生成器、数字签名、密钥交换以及证书管理等。

嵌入式技术开发 4160

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Oracle-序列

Oracle序列的各种操作

qq_40593244的博客 894

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Oracle中序列详解

数据库设计的三大范式第一条就是独立的表结构中必须有唯一主键来标识表中数据.在以往微软的SQL Server(duo版本)平台上.手动编码实现表中主键.并设定为自增列是极其简单.编码如下:  --简单主键定义如下并设置为自增(只取出主键定义)   typeid int not null primary key identity(1,1), 在Oracle中如果要设定一个独立表结构的主键

天蝎承载梦想的博客 1152

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ORACLE的序列

oracle

weixin_43925148的博客 260

oracle 数据库 sequence 的 max_value 最大值为 28个9

db: oracle 11.2.0.4 SQL> create sequence seq_1; 查询数据字典,max_value 显示为 1E28(科学计数法,表示10的28次方,相当于1后面29个0 ),够大。 查看oracle 的文档显示如下 SQL> create sequence seq_1; SQL> create sequence seq_1 start with 9999999999999999999999999970 ; SQL> select s

一名数据库爱好者的专栏 3432

oracle实现自增--序列

oracle 实现自增需要创建 squence(序列); 如果需要插入时自动增加还需要创建一个 trigger(触发器),否则需要在程序中手工设置 例如:将表fcbook的主键fid设置为自增  1. 创建squence Name : 创建的名字 Min value : 最小计数 Max value : 最大计数 (创建一个序列从1开始自增,最大值到999999999。 ...

weixin_34273479的博客 138

oracle序列达到了最大值处理

客户方发现有某个大表上的序列达到了最大值,报错,要求帮忙查看 set linesize 180 set long 90000 SELECT dbms_metadata.get_dd...

cilonggang7850的博客 3594

Oracle序列

序列是 ORACLE 提供的用于产生一系列唯一数字的数据库对象。

weixin_65562581的博客 1834

oracle序列到达最大,Oracle中序列到达最大值会产生什么问题-Oracle

Oracle中序列到达最大值会产生什么问题序列是oracle提供的用于生成一系列唯一数字的数据库对象,序列会自动生成顺序递增的序列号,以实现自动提供唯一的主键值,系列可以在多个用户并发环境中使用,并且可以为所有用户生成不重复的顺序数字,而不需要任何额外的I/O开销。创建序列序列和视图一样,并不占用实际的存储空间,只是在数据字典中保存他的定义信息。当创建序列时必须拥有create sequence系...

weixin_33206646的博客 1179

oracle序列目前最大值,sql-如何从表的最大值开始创建Oracle序列?

sql-如何从表的最大值开始创建Oracle序列?尝试在Oracle中创建一个从特定表的最大值开始的序列。 为什么这不起作用?CREATE SEQUENCE transaction_sequenceMINVALUE 0START WITH (SELECT MAX(trans_seq_no)FROM TRANSACTION_LOG)INCREMENT BY 1CACHE 20;8个解决方案36 vo...

weixin_39630880的博客 668

五、Oracle 序列

一、Oracle 序列

梦想成真 3146

Oracle修改序列值为ID最大值;动态SQL修改序列值;

场景描述: 在使用kettle、plsql等工具导数据到数据库后,因为导入的数据有id,而我的表的id使用的是序列,所以需要将序列当前值设置为id的最大值,下一次项目调用的时候自动使用序列的下一个值,避免重复报错。 因为修改序列的语句中无法将变化值使用sql语句或者是加减,所以只能手动的去算差值然后在设置,很麻烦,类似于下面的sql就会报错,好像是这样直接运行,最后...

Loading... 5642
上一篇: 反向传播算法的公式推导
下一篇: CNN详解——反向传播过程
HappyRocking
博客等级 码龄12年 222粉丝 176原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值