为什么tf.estimator.TrainSpec中的max_步骤会影响训练模型是否在tensorflow中完全导出?

为什么tf.estimator.TrainSpec中的max_步骤会影响训练模型是否在tensorflow中完全导出?,tensorflow,Tensorflow,我正在使用tf.estimator.train\u和\u evaluate来训练DNNClassifier。假设我有一个10000行的训练数据集,我将批次设置为200。这意味着一个历元将有50个步骤 def json_serving_input_fn(): inputs = {} for feat in my_input_columns: inputs[feat.name] = tf.placeholder(shape=[None], dtype=feat.dtype)

我正在使用
tf.estimator.train\u和\u evaluate
来训练DNNClassifier。假设我有一个10000行的训练数据集,我将批次设置为200。这意味着一个历元将有50个步骤

def json_serving_input_fn():
  inputs = {}
  for feat in my_input_columns:
      inputs[feat.name] = tf.placeholder(shape=[None], dtype=feat.dtype)

  return tf.estimator.export.ServingInputReceiver(inputs, inputs)

my_exporter = tf.estimator.FinalExporter('test', json_serving_input_fn)

estimator = tf.estimator.DNNClassifier(
    config=config,
    feature_columns= my_input_columns,
    hidden_units=[100, 70, 50, 25]
)

train_spec = tf.estimator.TrainSpec(
    train_input_fn, max_steps=3000)

eval_spec = tf.estimator.EvalSpec(
    eval_input_fn,
    exporters=[my_exporter],
    name='test-eval')

tf.estimator.train_and_evaluate(estimator, train_spec, eval_spec)
train\u input\u fn
只读取一个历元的训练数据。除了
train\u spec
中的
max\u steps
之外,一切似乎都很好。根据我的实验,如果我将
max_steps
设置为小于或等于50,则模型将导出为模型输出目录下
export/test/[timeStamp]
文件夹下的
saved_model.pb
。但是,如果我将其设置为大于50,模型仍会训练,在我的模型输出目录中仍有一些输出,但没有
导出
文件夹,因此没有
保存的\u model.pb
文件

我不明白为什么这个
max_steps
参数会影响模型导出。感谢您的帮助

后续行动:

添加了
my_exporter
的代码

添加了整个日志。(我的实际训练数据在一个历元中有3589个步骤)

[代码>,,,,,,,,,,,,,[0.0,,[0.0,,[0.0,,[0.0,,[0.0,,[0.0 0 0.0,,[0.0,,[0.0,,[0.0,,[0.0,,,,[0.0.0,,[0.0,,,[0.0 0 0.0,,,,[0.0 0 0 0.0 0,,,[0.0 0 0 0.0 0 0 0 0 0 0 0 0,,,,[0.0.0.0.0,,,,,[0.0 0 0.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,,,,[0 0 0 0 0 0.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,,,[0 0.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0[0.0]、[0.0]、[0.0]、[0.0]、[0.0]、[0.0]、[0.0]、[0.0]、[0.0]、[0.0]、[0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0]]) ('标签为:'、['0'、['1']) 信息:tensorflow:TF_CONFIG环境变量:{u'environment':u'cloud',u'cluster':{},u'job':{u'args':[u'-训练目录,'u'/Users/git/test/data/train csv',u'-评估目录,'u'/Users/git/test/data/test csv',u'-头文件,'u'/Users/git/test/data/header.csv',u'-标签列',u'id',u'-标签',u'0',u'1',u'-数据类型文件',u'/Users/test data/dataType.json',u'-辍学',u'0.1',u'-学习rate',u'0.1',u'--job dir',u'output'],u'job_name':u'trainer.task'},u'task':{} 模型直接输出 args的长度:2 信息:tensorflow:使用配置:{“保存检查点”:600,“会话配置”:无”,“保存检查点最多”:5,“任务类型”:“工作者”,“全局id”:“集群”:0,“是主要的”:True,“集群规格”:“,”评估主控“,”保存检查点:无”,“每小时保留一次检查点”:“10000”,“服务”:无”,“数量副本”:0,“随机种子主控”:'',''设备''u fn':无,''工作''u副本':1,''任务''u id':0,''日志''u步骤''u计数''u步骤':100,''模型''u目录':'输出',''训练''u分发':无,''保存''u摘要':100} 信息:tensorflow:本地运行培训和评估(非分布式)。 信息:tensorflow:启动训练和评估循环。评估将在每个检查点之后进行。检查点频率根据RunConfig参数确定:保存检查点\u步骤无或保存检查点\u秒600。 未设置参数最大列车步数 args.num_时代为:1 信息:tensorflow:正在调用模型\u fn。 信息:tensorflow:已完成调用模型\u fn。 信息:tensorflow:创建检查点SaveRhook。 信息:tensorflow:图表已定稿。 信息:tensorflow:正在运行本地初始化操作。 信息:tensorflow:已完成运行本地初始化操作。 信息:tensorflow:将0的检查点保存到输出/model.ckpt中。 信息:tensorflow:损耗=1565.3971,步长=1 信息:tensorflow:全局步长/秒:141.477 信息:tensorflow:损耗=9.107332,步长=101(0.707秒) 信息:tensorflow:global_step/sec:268.697 信息:tensorflow:损耗=11.751476,步长=201(0.372秒) 信息:tensorflow:global_step/sec:295.221 信息:tensorflow:损耗=6.426797,步长=301(0.339秒) 信息:tensorflow:global_step/sec:278.098 信息:tensorflow:损耗=9.810878,步长=401(0.360秒) 信息:tensorflow:global_step/sec:278.104 信息:tensorflow:损耗=10.924436,步长=501(0.359秒) 信息:tensorflow:global_step/sec:287.359 信息:tensorflow:损耗=4.5450187,步长=601(0.348秒) 信息:tensorflow:global_step/sec:293.911 信息:tensorflow:损耗=3.6031227,步长=701(0.340秒) 信息:tensorflow:global_step/sec:284.665 信息:tensorflow:损耗=17.361057,步长=801(0.351秒) 信息:tensorflow:全局步长/秒:256.988 信息:tensorflow:损耗=7.1942925,步长=901(0.389秒) 信息:tensorflow:global_step/sec:276.781 信息:tensorflow:损耗=9.573512,步长=1001(0.361秒) 信息:tensorflow:global_step/sec:275.31 信息:tensorflow:损耗=11.024918,步长=1101(0.363秒) 信息:tensorflow:global_step/sec:253.897 信息:tensorflow:损耗=6.0349283,步长=1201(0.394秒) 信息:tensorflow:global_step/sec:263.648 信息:tensorflow:损耗=8.061558,步长=1301(0.379秒) 信息:tensorflow:全局步长/秒:247.25 信息:tensorflow:损耗=7.8820763,步长=1401(0.404秒) 信息:tensorflow:全局步长/秒:276.765 信息:tensorflow:损耗=10.244268,步长=1501(0.361秒) 信息:tensorflow:全局步长/秒:288.975 信息:tensorflow:损耗=4.288355,步长=1601(0.346秒) 信息:tensorflow:全局步长/秒:288.279 信息:tensorflow:损耗=6.974848,步长=1701(0.347秒) 信息:tensorflow:全局步长/秒:292.614 信息:tensorflow:损耗=2.9634063,步长=1801(0.342秒) 信息:tensorflow:global_step/sec:289.016 信息:tensorflow:损耗=1.9827827,步长=1901(0.346秒) 信息:tensorflow:全局步长/秒:296.63 信息:tensorflow:损耗=9.702525,步长=2001(0.337秒) 信息:tensorflow:全局步长/秒:297.65 信息:tensorflow:损耗=12.115634,步长=2101(0.336秒) 信息:tensorflow:全局步长/秒:300.723 信息:tensorflow:损耗=6.0941725,步长=2201(0.333秒) 信息:tensorfl