我正在使用张量流 2.2。我有两个传递给 tf.data.dataset.from_tensor_slices() 的 numpy 数组(特征和标签):
train_dataset = tf.data.Dataset.from_tensors(feature_train_slice, label_train_slice).shuffle(buffer_size).reapeat()
test_dataset = tf.data.Dataset.from_tensors(feature_test_slice, label_test_slice).shuffle(buffer_size).repeat()
我正在尝试将此数据传递给我的 model.fit():
history = self.model.fit(ds_train,
steps_per_epoch=int(train_steps / (batch_size)),
verbose=1,
epochs=epochs,
callbacks=self.call_back(),
use_multiprocessing=True,
validation_data = test_dataset,
validation_steps = int(validation_steps / (batch_size))
)
我用
tf.compat.v1.disable_eager_execution()
在我的代码的开头。如果我将其注释掉,则训练开始时没有问题,但我意识到训练速度较慢(在 2080TI 上每一步需要 2 秒)。如果我离开它,每一步大约是 1.2 秒。但是,该程序从未通过该行
train_dataset = tf.data.Dataset.from_tensors(feature_train_slice, label_train_slice).shuffle().reapeat()
我离开程序超过 30 分钟,虽然消耗了大约 60GB(我的内存是 64GB),但程序似乎没有做任何事情。有没有人见过这个?欢迎任何帮助。