Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 传递将DICT返回给Keras的tf.data.Dataset 背景_Python_Tensorflow_Keras - Fatal编程技术网

Python 传递将DICT返回给Keras的tf.data.Dataset 背景

Python 传递将DICT返回给Keras的tf.data.Dataset 背景,python,tensorflow,keras,Python,Tensorflow,Keras,据我所知,Keras将成为编写急切/懒惰的不可知论模型的首选方式。Keras()似乎也支持tf.data,这很好,因为这是我当前tf.estimator项目使用的ETL 问题 我想保留我的tf.data管道,但用tf.keras.Model替换我的tf.estimator,但是在移植我的图形后,我被一个 ValueError: Please do not pass a dictionary as model inputs. 调用model.fit(dataset,steps\u per\u e

据我所知,Keras将成为编写急切/懒惰的不可知论模型的首选方式。Keras()似乎也支持
tf.data
,这很好,因为这是我当前
tf.estimator
项目使用的ETL

问题 我想保留我的
tf.data
管道,但用
tf.keras.Model
替换我的
tf.estimator
,但是在移植我的图形后,我被一个

ValueError: Please do not pass a dictionary as model inputs.
调用
model.fit(dataset,steps\u per\u epoch=n)
时,我觉得这很奇怪,因为
tf.data
/
tf.estimator
是为使用
(功能:dict,标签:dict)
而构建的,其中dict中的值是张量

总结
如何将
tf.keras.Model
用于dicts?

临时解决方法是使用张量元组而不是dicts,例如通过调用

def flatten(dataset):
    return dataset.map(lambda features, labels: (tuple(features.values()), tuple(labels.values())))
model.fit
之前,确保
model.call
通过索引而不是键(例如
返回元组(outputs.values())
等)

不幸的是: 上述黑客只适用于训练数据。对于
model.fit(validation\u data=flant(validation\u dataset),…)
由于一些内部错误,它将无法工作:

与您的情况类似吗?