如何在 Tensorflow 2.0 中正确批处理 CsvDataset?
How to batch CsvDataset correctly in Tensorflow 2.0?
我正在使用 tf.data.experimental.make_csv_dataset
从 .csv 文件创建数据集。我还使用 tf.keras.layers.DenseFeatures
作为模型的输入层。
我正在努力正确创建一个 DenseFeatures
层,以便在 make_csv_dataset
的 batch_size
参数不等于 1 的情况下它与我的数据集兼容(在如果 batch_size=1
我的设置按预期工作的话)。
我使用 tf.feature_column.numeric_column
元素列表创建 DenseFeatures
层 shape=(my_batch_size,)
,但在这种情况下似乎由于某种原因输入层需要 [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)
生成的数据集?
来自 tf.feature_column.numeric_column
文档:
shape
: An iterable of integers specifies the shape of the Tensor
. An integer can be given which means a single dimension Tensor
with given width. The Tensor
representing the column will have the shape of [batch_size] + shape
.
这意味着您不能将批量大小传递给 shape
参数:shape=()
.
目前,批处理大小为 1,TF 可以通过广播或类似的方式处理 shape=(1,)
(如有必要,TF 可以轻松添加大小为 1 的维度),这就是它起作用的原因.
希望这对您有所帮助。如果您需要更多帮助,请提供更多代码。
我正在使用 tf.data.experimental.make_csv_dataset
从 .csv 文件创建数据集。我还使用 tf.keras.layers.DenseFeatures
作为模型的输入层。
我正在努力正确创建一个 DenseFeatures
层,以便在 make_csv_dataset
的 batch_size
参数不等于 1 的情况下它与我的数据集兼容(在如果 batch_size=1
我的设置按预期工作的话)。
我使用 tf.feature_column.numeric_column
元素列表创建 DenseFeatures
层 shape=(my_batch_size,)
,但在这种情况下似乎由于某种原因输入层需要 [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)
生成的数据集?
来自 tf.feature_column.numeric_column
文档:
shape
: An iterable of integers specifies the shape of theTensor
. An integer can be given which means a single dimensionTensor
with given width. TheTensor
representing the column will have the shape of [batch_size] +shape
.
这意味着您不能将批量大小传递给 shape
参数:shape=()
.
目前,批处理大小为 1,TF 可以通过广播或类似的方式处理 shape=(1,)
(如有必要,TF 可以轻松添加大小为 1 的维度),这就是它起作用的原因.
希望这对您有所帮助。如果您需要更多帮助,请提供更多代码。