Python 如何将预取数据集转换为TF张量?

Python 如何将预取数据集转换为TF张量?,python,tensorflow,keras,tensorflow2.0,Python,Tensorflow,Keras,Tensorflow2.0,我从'make_csv_DataSet'函数创建了一个数据集,它是OrderDict的完美数据集。但是,当我适合模型时: def get_train_dataset(file_path, **kwargs): dataset = tf.data.experimental.make_csv_dataset( file_path, batch_size=5, label_name=LABEL_COLUMN, na_value="?",

我从'make_csv_DataSet'函数创建了一个数据集,它是OrderDict的完美数据集。但是,当我适合模型时:

def get_train_dataset(file_path, **kwargs):
  dataset = tf.data.experimental.make_csv_dataset(
      file_path,
      batch_size=5, 
      label_name=LABEL_COLUMN,
      na_value="?",
      num_epochs=1,
      ignore_errors=True,
      **kwargs)
  return dataset

raw_train_data = get_train_dataset(train_file_path, select_columns=CSV_COLUMNS)
它报告了一个错误:

embedding = "https://tfhub.dev/google/tf2-preview/gnews-swivel-20dim/1"
hub_layer = hub.KerasLayer(embedding, input_shape=[],
                           dtype=tf.string, trainable=True)
model = tf.keras.Sequential()
model.add(hub_layer)
model.add(tf.keras.layers.Dense(16, activation='relu'))
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))
model.compile(optimizer='adam',
              loss='binary_crossentropy',
              metrics=['accuracy'])
history = model.fit(train_data.shuffle(10000),
                    epochs=20,
                    validation_data=val_data,
                    verbose=1)

我的csv文本列名为“文本”。如果我想使用上面的解决方法,如何做到这一点?

我认为问题出在其他地方,但首先在
fit
中更改数据集的名称。您没有在任何地方定义
train\u数据
变量

如果仍然不起作用,则用此行替换
get\u train\u data
,同时将值提供给其中相应的参数

The not very elegant workaround you can try is to match the name of input layer with csv column name
The not very elegant workaround you can try is to match the name of input layer with csv column name
dataset = tf.data.experimental.make_csv_dataset('PATH OR FILE NAME', batch_size = 1,select_columns = ['Column1','Label'], label_name = 'Label', num_epochs = 1 ,shuffle = True)