【发布时间】:2021-01-11 12:36:23
【问题描述】:
我正在尝试批量训练我的模型,因为我的数据集非常大。但是调用时
autoencoder_train = autoencoder.fit(my_training_batch_generator,
steps_per_epoch=steps_per_epoch,
epochs=nb_epoch,
verbose=1,
validation_data=my_testing_batch_generator,
validation_steps=validation_steps)
我收到以下错误:
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/data_adapter.py in select_data_adapter(x, y)
962 "Failed to find data adapter that can handle "
963 "input: {}, {}".format(
--> 964 _type_name(x), _type_name(y)))
965 elif len(adapter_cls) > 1:
966 raise RuntimeError(
ValueError: Failed to find data adapter that can handle input: <class 'function'>, <class 'NoneType'>
函数my_training_batch_generator 和my_testing_batch_generator 定义相同:
def my_training_batch_generator(Train_df,batch_size,
steps):
idx=1
while True:
yield load_train_data(Train_df,idx-1,batch_size)## Yields data
if idx<steps:
idx+=1
else:
idx=1
dataDir = "/..."
def load_train_data(Train_df,idx,
batch_size):
i = 1
x = np.zeros([batch_size, 100, 100, 100, 3])
for n in range(idx*batch_size, idx*batch_size + batch_size):
data = loadmat( Train_df+'volume'+str(n))
x[i] = np.array(data['tensor'])
i = i + 1
return (np.asarray(x),np.asarray(x))
所以我很确定 generator 函数将 numpy 数组传递给自动编码器,因此我不明白为什么数据适配器无法处理输入?我是批处理训练的新手,我遵循的教程 (here) 用于分类任务,而在这里我通过自动编码器在图像到图像回归上使用它。任何帮助将不胜感激!
【问题讨论】:
标签: python numpy tensorflow keras autoencoder