【发布时间】:2019-10-08 21:47:40
【问题描述】:
我正在使用 tf.data.experimental.make_csv_dataset 从 .csv 文件创建数据集。我还使用tf.keras.layers.DenseFeatures 作为模型的输入层。
我正在努力正确地创建一个DenseFeatures 层,以便在make_csv_dataset 的batch_size 参数不等于1 的情况下与我的数据集兼容(如果batch_size=1 我的设置有效正如预期的那样)。
我使用shape=(my_batch_size,) 的tf.feature_column.numeric_column 元素列表创建DenseFeatures 层,但在这种情况下,出于某种原因,输入层似乎需要[my_batch_size,my_batch_size] 形状而不是[my_batch_size,1]。
使用my_batch_size=19 尝试拟合模型时出现以下错误:
ValueError: Cannot reshape a tensor with 19 elements to shape [19,19] (361 elements) for 'MyModel/Input/MyColumn1/Reshape' (op: 'Reshape') with input shapes: [19,1], [2] and with input
tensors computed as partial shapes: input[1] = [19,19].
如果我在创建numeric_column 时没有指定shape,它也不起作用。我收到以下错误:
tensorflow.python.framework.errors_impl.InvalidArgumentError: The second input must be a scalar, but it has shape [19]
假设numeric_column 需要一个标量,但在一个Tensor 中接收整个批次。
如何创建DenseFeatures 的输入层,以便它接受make_csv_dataset(batch_size=my_batch_size) 生成的数据集?
【问题讨论】: