报错
WARNING:tensorflow:Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least steps_per_epoch * epochs
batches (in this case, 104640 batches). You may need to use the repeat() function when building
错误原因
generator产生的训练数据不够用,少于所要求的steps_per_epoch * epochs
个batch数。
(len(train_data)/batch_size)*epochs=
所需要的训练数据的batch
数
如果盲目的按照提示repeat()
函数来扩充train_data
的话,要求的所需的batch数也会相应地增多,会陷入一条死路。。
解决方法
在提取数据处先用重复函数np.tile()
扩充train_data
数据集(两倍即可),得到两倍数据量的train_data_1
数据集。
仅在steps_per_epoch = len(train_data)/batch_size
处的data用原数据量的数据集,表示所需求的量不变。
其余涉及到训练数据处理的地方的train_data
全部换成两倍数据量的数据集train_data_1
,表示所提供用来训练的数据是双倍的,这样就不会出现数据不够的情况。