基于像素的图像分类的TensorFlow体系结构



我有一个RGBI映像,其中包括4个频段,并希望能够使用TensorFlow和深度学习将图像像素分类为两个类。在训练数据中,每个像素被认为是一个值/特征作为图像强度的观察结果。我使用以下功能创建网络

def deep_learn(X,Y,X_test,Y_test):
    net = input_data(shape=[None, 1,4])
    net = tflearn.lstm(net, 128, return_seq=True)
    net = tflearn.lstm(net, 128)
    net = tflearn.fully_connected(net, 2, activation='softmax')
    net = tflearn.regression(net, optimizer='adam',
                             loss='categorical_crossentropy', name="deep")
    model = tflearn.DNN(net, tensorboard_verbose=2)
    model.fit(X, Y, n_epoch=1, validation_set=0.1, show_metric=True,
              snapshot_step=100)
    # Save model when training is complete to a file
    model.save("deep")
    return model

但是我有以下错误

value error:无法为tensor'inputdata/x:0'的形状的进料值(64,4),它具有形状'(?,1,4)'

我不知道问题在哪里。使用深层神经网络与随机森林进行基于像素的分类有任何好处吗?如果是,我该如何使用上述功能进行操作。

谢谢。

您需要扩展变量X的尺寸,以说明LSTM中的时间步长。而不是直接通过X,而是使用np.expand_dims喜欢 -

X = np.expand_dims(X, axis=1)

最新更新