这种原因是因为 数据集数量 不能 整除batch_size导致的
比如 50000的训练集, batch_size = 128 则 steps = 391 , 最后一个steps里只有80张图片
50000 - 128*390 = 80
这种情况 会报错BaseCollectiveExecutor::StartAbort Out of range: End of sequence
网上 针对这种情况的 解决方法 是
“加上预处理数据集的时候repeat()函数设置为空(不要有参数),在fit()函数中加入step_per_epoch参数,设置其等于训练集大小整除于batchsize”
随着版本更新,这种情况还是会报错,最新的解决方法如下 ,在上面的基础之上 ,还要加上测试集的steps
network.fit(train_db, epochs=100, verbose=2, steps_per_epoch=x.shape[0]//128, validation_steps=x_test.shape[0]//64, validation_data=test_db, validation_freq=1)