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
我在 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