TF1中训练使用的Numpy数组——Keras在TF2中精度低很多

Numpy arrays used in training in TF1--Keras have much lower accuracy in TF2

我在 keras 中有一个表现良好的神经网络。现在随着 Tensorflow 2 的弃用,我不得不重写模型。现在它给了我更差的准确性指标。

我怀疑 tf2 希望你使用他们的数据结构来训练模型,他们给出了一个如何从 Numpy 到 tf.data.Dataset here.

的例子

所以我做了:

train_dataset = tf.data.Dataset.from_tensor_slices((X_train_deleted_nans, y_train_no_nans))
train_dataset = train_dataset.shuffle(SHUFFLE_CONST).batch(BATCH_SIZE)

训练开始后,我收到此警告错误:

2019-10-04 23:47:56.691434: W tensorflow/core/common_runtime/base_collective_executor.cc:216] BaseCollectiveExecutor::StartAbort Out of range: End of sequence
     [[{{node IteratorGetNext}}]]

.repeat() 添加到我的 tf.data.Dataset 的创建解决了我的错误。就像 duysqubix 在他的 eloquent 解决方案中所建议的那样:

https://github.com/tensorflow/tensorflow/issues/32817#issuecomment-539200561