Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing &引用;“未知节点”;Keras卷积神经网络中的误差_Image Processing_Keras_Conv Neural Network_Tf.keras - Fatal编程技术网

Image processing &引用;“未知节点”;Keras卷积神经网络中的误差

Image processing &引用;“未知节点”;Keras卷积神经网络中的误差,image-processing,keras,conv-neural-network,tf.keras,Image Processing,Keras,Conv Neural Network,Tf.keras,我在Keras中有以下(2D)卷积神经网络,用于二值标签图像分类: model = keras.Sequential() model.add(Conv2D(32, kernel_size=5, activation='relu', input_shape=(128, 128, 1))) model.add(MaxPooling2D(pool_size=2)) model.add(Conv2D(64, kernel_size=5, activation='relu')) model.add(Max

我在Keras中有以下(2D)卷积神经网络,用于二值标签图像分类:

model = keras.Sequential()
model.add(Conv2D(32, kernel_size=5, activation='relu', input_shape=(128, 128, 1)))
model.add(MaxPooling2D(pool_size=2))
model.add(Conv2D(64, kernel_size=5, activation='relu'))
model.add(MaxPooling2D(pool_size=2))
model.add(Flatten())
model.add(Dense(1024, activation="relu"))
model.add(Dense(2, activation="softmax"))

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
为了训练它,我有很多(.jpeg)图像文件,但太多了,无法一次全部加载。因此,我使用以下生成器(和预处理):

我试着使用

model.fit_generator(image_generator(train_paths, train_labels), steps_per_epoch=int(np.ceil(len(train_paths)/32)), epochs=1)
这里train_paths是一个路径列表,train_标签是一个具有两列的二进制numpy数组

但是,这给了我以下错误:

InvalidArgumentError: Requested tensor connection from unknown node: "conv2d_input:0".

导致此错误的原因是什么?如何解决?我试着用谷歌搜索,但没有找到任何结果。

我发现了错误:图像是张量,应该转换成数组。我的做法如下:

def image_generator(paths, labels, batch_size=32):
    sess = tf.Session()
    while True:
        for i in range(0, len(paths), batch_size):
            with sess.as_default():
                images = [load_preprocess(path).eval() for path in paths[i:i+batch_size]]
            target = labels[i:i+batch_size]

            yield(np.array(images), target)
def image_generator(paths, labels, batch_size=32):
    sess = tf.Session()
    while True:
        for i in range(0, len(paths), batch_size):
            with sess.as_default():
                images = [load_preprocess(path).eval() for path in paths[i:i+batch_size]]
            target = labels[i:i+batch_size]

            yield(np.array(images), target)