将时间数据馈送到tf.estimator:“ input_fn”必须是可调用的

问题描述 投票:0回答:1

目标

我想mod this tutorial消耗this time series dataset而不是常规图像数据。

方法

我已经确定了几种将数据获取到tf.estimator API的方法。最方便的方式(因为使用.from_generator是猜测工作...)如下使用tf.data.Dataset.from_tensor_slices(training_data_ndarray)

trnX, trnY, tstX, tstY = load_dataset()
trnXl = trnX.tolist()
tstXl = tstX.tolist()
tstYl = tstY.tolist()
trnYl = trnY.tolist()
trndataset = tf.data.Dataset.from_tensor_slices((trnXl, trnYl))
tstdataset = tf.data.Dataset.from_tensor_slices((tstXl, tstYl))
...
def _input_fn(partition):
    if partition == "train":
        dst = trndataset
    elif partition == "predict":
        dst = tstdataset
    else:
        dst = tstdataset

    return dst

错误/问题

TypeError:input_fn必须是可调用的,给定的是:DatasetV1Adapter形状:((128,9),(6,)),类型:(tf.float32,tf.float32)>

复制

我使用纸空间实例。如果您有帐户,则可以看一下 here

  1. 如果不是,请获取full code in this gist:
  2. 2中的数据集。

设置:

  • Tensorflow 1.15
  • Python 3.6.8
  • 急切执行:关闭(adanet库将不处理)。>>
  • 呼叫时出现错误:

tf.estimator.train_and_evaluate(
estimator,
train_spec=tf.estimator.TrainSpec(
    input_fn=_input_fn("train"),
    max_steps=TRAIN_STEPS),
eval_spec=tf.estimator.EvalSpec(
    input_fn=_input_fn("test"),
    steps=None,
    start_delay_secs=1,
    throttle_secs=1,  
))

现在呢?

我看不到使用创建tf.data.Dataset的方法前进的路径,因为似乎输入函数(“创建返回数据集的输入函数”)不正确。

目标,我想修改本教程以使用此时间序列数据集,而不是常规图像数据。方法我已经确定了几种将数据放入tf.estimator ...

python tensorflow tensorflow-datasets tensorflow-estimator automl
1个回答
0
投票

这可能会在将来对某人有所帮助,但不能解决我的更深层次的问题。

© www.soinside.com 2019 - 2024. All rights reserved.