【发布时间】:2019-11-30 03:25:54
【问题描述】:
我想使用tf.data.Dataset 类来提供我的数据
from tensorflow_core.python.keras.datasets import cifar10
(train_images, train_labels), (test_images, test_labels) = cifar10.load_data()
train_dataset = tf.data.Dataset.from_tensor_slices((train_images, train_labels))
test_dataset = tf.data.Dataset.from_tensor_slices((test_images, test_labels))
我这样做是为了在我的管道中使用
Dataset。进一步利用
Dataset的其他功能。
我正在这样定义我的模型
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPool2D((2, 2)))
# more layers
但是当我打电话来训练模型时
model.fit(train_dataset, epochs=10, validation_data=test_dataset, callbacks=[ cp_callback])
我收到一个错误
ValueError: 检查输入时出错:预期 conv2d_input 有 4 个维度,但得到的数组形状为 (32, 32, 3)
- 到底发生了什么?如何通过 input_shape=(32, 32, 3) 在我的 Conv2D 层中使用
DataSet?
Tensorflow 教程 (https://www.tensorflow.org/tutorials/load_data/numpy) 没有涵盖这种情况,我找不到可以帮助我解决问题的解释。
【问题讨论】:
标签: python tensorflow keras