我的任务是指导一组潜在的大量元素来训练神经网络。我正在尝试使用 tf.data.experimental.CsvDataset 和 tf.data.experimental.make_csv_dataset 但我一直卡住。
我的数据集是一个文本文件,其中包含用“;”分隔的数字字符串。这是它的外观:
14;14;14;55;55;20;20...33;34;34
20;20;20;15;15;15;26...10;10;10
....
10;10;10;30;30;35;35...23;23;23
每行包含 2500 个数字,彼此分开。我尝试使用此代码
dataset = tf.data.experimental.CsvDataset(pathAsk,
record_defaults=[tf.float32],
field_delim=";",
na_value='NA'
)
for element in dataset.as_numpy_iterator():
print(element)
但是我得到一个错误,比如行中的元素比我在 record_defaults 中指定的要多。我也尝试使用这个:
dataset = tf.data.experimental.make_csv_dataset(pathAsk, batch_size=2, field_delim=';')
iterator = dataset.as_numpy_iterator()
print(dict(next(iterator)))
但我得到错误:
Cannot have duplicate column names.
我的任务是使用这个数据集,以便它可以进入以类似方式构建的神经网络的输入:
inputs = keras.Input(shape=(2500), name="ask")
x = keras.layers.Embedding(1000, 64)
x = keras.layers.Dense(64, activation=keras.activations.relu)(inputs)
x = keras.layers.Dense(32, activation=keras.activations.relu)(x)
outputs = keras.layers.Dense(6, activation=keras.activations.relu)(x)
model = keras.Model(inputs, outputs)
model.compile("adam", "binary_crossentropy", metrics=["accuracy"])