如何查找 tensorflow.python.data.ops.dataset_ops.MapDataset 对象的大小或形状,make_csv_dataset 的输出
How to find size or shape of an tensorflow.python.data.ops.dataset_ops.MapDataset object, output of make_csv_dataset
使用 make_csv_dataset
我们可以将 CSV 文件读取到 tensorflow 数据集对象
csv_data = tf.data.experimental.make_csv_dataset(
"./train.csv",
batch_size=8190,
num_epochs=1,
ignore_errors=True,)
现在 csv_data
是 tensorflow.python.data.ops.dataset_ops.MapDataset
类型。如何找到 csv_data
.
的大小或形状
print(csv_data)
列信息如下
<MapDataset element_spec={'title': TensorSpec(shape=(None,), dtype=tf.string, name=None), 'user_id': TensorSpec(shape=(None,), dtype=tf.string, name=None)}>
当然可以选择使用 train_recom.csv
和 pandas.read_csv
,只是想知道 tensorflow 是否有更简单的方法。
如果您想在不进行任何预处理步骤的情况下获取批处理数据集的大小,请尝试:
import pandas as pd
import tensorflow as tf
df = pd.DataFrame(data={'A': [50.1, 1.23, 4.5, 4.3, 3.2], 'B':[50.1, 1.23, 4.5, 4.3, 3.2], 'C':[5.2, 3.1, 2.2, 1., 3.]})
df.to_csv('data1.csv', index=False)
df.to_csv('data2.csv', index=False)
dataset = tf.data.experimental.make_csv_dataset(
"/content/*.csv",
batch_size=2,
field_delim=",",
num_epochs=1,
select_columns=['A', 'B', 'C'],
label_name='C')
dataset_len = len(list(dataset.map(lambda x, y: (x, y))))
print(dataset_len)
5
如果您想知道总共有多少样本,请尝试 unbatch
:
dataset_len = len(list(dataset.unbatch().map(lambda x, y: (x, y))))
print(dataset_len)
# 10
使用 make_csv_dataset
我们可以将 CSV 文件读取到 tensorflow 数据集对象
csv_data = tf.data.experimental.make_csv_dataset(
"./train.csv",
batch_size=8190,
num_epochs=1,
ignore_errors=True,)
现在 csv_data
是 tensorflow.python.data.ops.dataset_ops.MapDataset
类型。如何找到 csv_data
.
print(csv_data)
列信息如下
<MapDataset element_spec={'title': TensorSpec(shape=(None,), dtype=tf.string, name=None), 'user_id': TensorSpec(shape=(None,), dtype=tf.string, name=None)}>
当然可以选择使用 train_recom.csv
和 pandas.read_csv
,只是想知道 tensorflow 是否有更简单的方法。
如果您想在不进行任何预处理步骤的情况下获取批处理数据集的大小,请尝试:
import pandas as pd
import tensorflow as tf
df = pd.DataFrame(data={'A': [50.1, 1.23, 4.5, 4.3, 3.2], 'B':[50.1, 1.23, 4.5, 4.3, 3.2], 'C':[5.2, 3.1, 2.2, 1., 3.]})
df.to_csv('data1.csv', index=False)
df.to_csv('data2.csv', index=False)
dataset = tf.data.experimental.make_csv_dataset(
"/content/*.csv",
batch_size=2,
field_delim=",",
num_epochs=1,
select_columns=['A', 'B', 'C'],
label_name='C')
dataset_len = len(list(dataset.map(lambda x, y: (x, y))))
print(dataset_len)
5
如果您想知道总共有多少样本,请尝试 unbatch
:
dataset_len = len(list(dataset.unbatch().map(lambda x, y: (x, y))))
print(dataset_len)
# 10