相关疑难解决方法(0)

如何结合密集层使用 TensorFlow Dataset API

我正在为TensorFlow 文档中显示的输入管道试用 Dataset API,并使用几乎相同的代码:

tr_data = Dataset.from_tensor_slices((train_images, train_labels))
tr_data = tr_data.map(input_parser, NUM_CORES, output_buffer_size=2000)
tr_data = tr_data.batch(BATCH_SIZE)
tr_data = tr_data.repeat(EPOCHS)

iterator = dataset.make_one_shot_iterator()
next_example, next_label = iterator.get_next()

# Script throws error here
loss = model_function(next_example, next_label)

with tf.Session(...) as sess:
    sess.run(tf.global_variables_initializer())

     while True:
        try:
            train_loss = sess.run(loss)
        except tf.errors.OutOfRangeError:
            print("End of training dataset.")
            break
Run Code Online (Sandbox Code Playgroud)

这应该更快,因为它避免使用慢速 feed_dicts。但是我不能让它与我的模型一起工作,这是一个简化的 LeNet 架构。该问题tf.layers.dense在我model_function()这期待一个已知输入形状(我猜是因为它必须知道权重的数目事先)。但是next_examplenext_label只有通过在会话中运行它们才能获得它们的形状。在评估它们之前,它们的形状是不确定的?

声明model_function()抛出此错误:

ValueError:Dense应定义输入的最后一个维度。找到了None

现在,我不知道我是否以预期的方式使用此数据集 API,或者是否有解决方法。 …

python deep-learning tensorflow

5
推荐指数
1
解决办法
2810
查看次数

标签 统计

deep-learning ×1

python ×1

tensorflow ×1