1

我正在使用张量流 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),但程序似乎没有做任何事情。有没有人见过这个?欢迎任何帮助。

4

0 回答 0