基于像素的图像分类的Tensorflow架构

时间:2016-12-30 14:03:38

标签: image tensorflow classification pixel tflearn

我有一个包含4个波段的RGBI图像,并且希望能够使用张量流和深度学习将图像像素分类为两个类。 在训练数据中,每个像素被视为具有4个值/特征作为图像强度的观察。我使用以下函数来创建网络

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

但是我收到了以下错误

  

ValueError:无法为Tensor' InputData / X:0'提供形状值(64,4),它具有形状'(?,1,4)'

我不知道问题出在哪里。 使用深度神经网络与随机森林进行基于像素的分类有什么好处? 如果是,我怎么能用上面的功能做到这一点。

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要扩展变量X的维度,以考虑LSTM中的时间步长。不要直接传递X,而是使用http://soa.usbank.com/BaseCustomerService_V_3_0之类的 -

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