小编Ach*_*lle的帖子

Keras / Tensorflow:“您必须为占位符张量‘input_1’提供一个值为 dtype float 和 shape [?, 600, 451, 3]”

我有这个 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
                    )
Run Code Online (Sandbox Code Playgroud)

当我做:

next(test)[0].shape
Run Code Online (Sandbox Code Playgroud)

或者

next(test)[0].dtype
Run Code Online (Sandbox Code Playgroud)

它向我输出正确的形状 ([?, 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]
    )
Run Code Online (Sandbox Code Playgroud)

此错误消息:

InvalidArgumentError(回溯参见上文):您必须为占位符张量“input_1”提供一个值,其数据类型为浮点型和形状 [?,600,451,3]

[[节点: input_1 = Placeholderdtype=DT_FLOAT, shape=[?,600,451,3], _device="/job:localhost/replica:0/task:0/device:GPU:0"]]

我究竟做错了什么?感谢一千人对此的任何帮助或直觉。

keras tensorflow

5
推荐指数
2
解决办法
6360
查看次数

标签 统计

keras ×1

tensorflow ×1