首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Keras中使用tf.Dataset API

在Keras中使用tf.Dataset API
EN

Stack Overflow用户
提问于 2018-06-19 19:23:55
回答 2查看 800关注 0票数 2

我试图与Keras一起使用Dataset API,并试图在提到的这里行动计划中使用第三个选项。另外,当看到@fchollet 这里的第二个评论时,我认为第三个选项已经完成了。

但是,当我试图实现它时,我得到了以下错误:

当向模型提供符号张量时,我们期望张量具有静态批处理大小。具有形状的张量:(None, 32, 64, 64, 3)

我使用了以下策略来适应这个模型:

代码语言:javascript
复制
training_filenames = [.....]
dataset = tf.data.TFRecordDataset(training_filenames)
dataset = dataset.map(_parse_function_all) # Parse the record into tensors.

dataset = dataset.batch(20)
iterator = dataset.make_initializable_iterator()
videos, labels= iterator.get_next()

model = create_base_network(input_shape = ( 32, 64, 64 3))
# output dimension will be (None, 10) for the model above

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd)

model.fit(videos, labels, , epochs=10, steps_per_epoch=1000)

我可以用fit_generator来解决这个问题。我找到了这里解决方案,我应用了@Dat的解决方案。但是,为了计算AUC度量,我无法访问自定义回调中的验证数据集。所以我需要使用fit而不是fit_generator,但是首先需要消除这个错误。

有人能告诉我为什么我会犯这个错误吗?第三步是在Keras中安装模型,还是仍然存在问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-16 05:27:35

我想我发现了问题。我使用的是独立的Keras,而不是从Tensorflow导入的。将迭代器直接提供给model.fit()的新特性只有在使用tf.Keras时才有效,而不是独立的Keras。

票数 0
EN

Stack Overflow用户

发布于 2018-06-20 19:41:02

因此,我想出了如何在tf.DatasetAPI中使用keras,但是没有验证数据。你可以在这里查看我的问题,带有model.fit迭代器初始化器的Keras model.fit()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50935589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档