【发布时间】:2019-10-10 04:33:36
【问题描述】:
我正在处理这个 CNN。 输入形状是动态的,但我将其固定为 [?, 600, 451, 3] (batch_size, height, width, channels),以便调试。
我创建了一个随机批处理生成器:
test = random_batch_generator(z_train
, num_processes=12
, num_batch=steps_train
, preloaded_batch=100
, batch_size=batch_size
, chunk_size=batch_size
, dataaugmfunc=heavy_dataaugm
, seq=seq
, initial_dim=initial_dim
, min_overlap=MINOVERLAP
)
当我这样做时:
next(test)[0].shape
或
next(test)[0].dtype
它输出正确的形状 ([?, 600, 451, 3]) 和 dtype (float32),这在理论上是我的输入所必需的。我还检查了批次的内容,看起来不错。
不过,当我使用以下内容训练模型时,我得到了:
model.fit_generator(
random_batch_generator(z_train (...)),
validation_data= (x_val_mem,y_val_mem),
steps_per_epoch=steps_train,
validation_steps=steps_val,
epochs=epochs
,callbacks=model_callbacks(modelname)
,class_weight = [0.005,0.995]
)
这个错误信息:
InvalidArgumentError(有关回溯,请参见上文):您必须为占位符张量“input_1”提供一个值,其 dtype 为 float 和 shape [?,600,451,3]
[[节点:input_1 = Placeholderdtype=DT_FLOAT, shape=[?,600,451,3], _device="/job:localhost/replica:0/task:0/device:GPU:0"]]
我做错了什么?感谢您对此的任何帮助或直觉。
【问题讨论】:
-
尝试先初始化你的生成器类,然后将它传递给你的模型
-
也尝试将
next(test)[0]提供给您的模型
标签: tensorflow keras