tensorflow2.0 ValueError: Empty training data.誤報

4645 ワード

tensorflow 2を使用する.0トレーニングデータの場合、Empty training dataエラーが発生しました.
File "gru_layer2.py", line 74, in 
    network.fit(db_train, epochs=epochs, validation_data=db_val,steps_per_epoch=x_train.shape[0]//batchsz)
  File "/homes/xiaohuizou/.conda/envs/tf2/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 728, in fit
    use_multiprocessing=use_multiprocessing)
  File "/homes/xiaohuizou/.conda/envs/tf2/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 370, in fit
    total_epochs=1)
  File "/homes/xiaohuizou/.conda/envs/tf2/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_v2.py", line 180, in run_one_epoch
    aggregator.finalize()
  File "/homes/xiaohuizou/.conda/envs/tf2/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_utils.py", line 140, in finalize
    raise ValueError('Empty training data.')
ValueError: Empty training data.

私のコードを確認します.
batch_size=128
db_train = tf.data.Dataset.from_tensor_slices((x_train, y_train))
db_train = db_train.shuffle(6000).batch(batchsz, drop_remainder=True).repeat    ()
db_val = tf.data.Dataset.from_tensor_slices((x_val, y_val))
db_val = db_val.batch(batchsz, drop_remainder=True)
db_test = tf.data.Dataset.from_tensor_slices((x_test, y_test))
db_test = db_test.batch(batchsz, drop_remainder=True)

> x_train.shape, x_test.shape,x_val.shape
(700, 100) (100, 100) (200, 100)

テストセットのsample sizeが100でbatch_sizeは128に設定されているので、batchが1つ足りないので、batchsizeを100以下のbatch_size=64に変更すればいいです.