syliudf/LWN-for-UAVRSI

无法预测

Opened this issue · 8 comments

您的预测程序貌似我再运行时遇到了一些麻烦,在我改了维度之后发现预测是一片黑色的图,有正确的预测code吗?

感谢您的关注。我使用的时候,slide_predict开头的程序都是可以用的,论文的图也是它们生成的。请问您运行的环境是什么样的,做过哪些改动?可以发一下改动维度的细节吗

感谢您的关注。我使用的时候,slide_predict开头的程序都是可以用的,论文的图也是它们生成的。请问您运行的环境是什么样的,做过哪些改动?可以发一下改动维度的细节吗

我的pytorch版本1.4,由于报维度错误我slide_predict.py以下代码做出了调整:

def model_inference(model, image, flip=True):
    output = model(image)
    print(output.shape)
    if aux:
        output =output
    if flip:
        fimg = image.flip(2)
        if aux:
            output += model(fimg)[0].flip(2)
        else:
            output += model(fimg).flip(2)
        fimg = image.flip(3)
        if aux:
            output += model(fimg).flip(3)[0]
        else:
            output += model(fimg).flip(3)
        return output/3
    return output

即只改了这一行: output += model(fimg).flip(3)[0]
同时我发现我训练时是8个类别,在经过output = model(image)后变成了6个类别,即最后一个维度是6,因此又造成tta_inference函数中preds += pred维度不一致。我不得已只能将preds = inp.new().resize_(b, num_classes, h, w).zero_().to(inp.device)中的num_classes改为6, train.的过程未进行改动,只改了颜色的label和路径。

if aux一行只在模型使用辅助损失的情况下(例如bisenet_v2)执行,否则应关闭。
第二个问题请检查config.ini,检查配置是否正确。

twsha commented

请问你在运行训练文件的时候遇到过无法处理数据的情况吗
image
我接着去跑load_vaihingen
image
报这个错误

请问你在运行训练文件的时候遇到过无法处理数据的情况吗 image 我接着去跑load_vaihingen image 报这个错误

抱歉,我没有遇到过这两个问题。第一个问题可能出在RandomScaleCrop的函数,请检查那一步的w, h, self.crop_size三个变量的值。self.crop_size应小于等于w和h。若不需要RandomScaleCrop功能,将crop_size设置为w即可,但是crop_size不能比w大。
第二张图的问题可能来自于维度,请检查rgb和r的size(),r应该是[512, 512]或者[256, 256]这种。我没有使用decode_segmap这个函数,读数据其实用不到它。

twsha commented

请问你在运行训练文件的时候遇到过无法处理数据的情况吗 image 我接着去跑load_vaihingen image 报这个错误

抱歉,我没有遇到过这两个问题。第一个问题可能出在RandomScaleCrop的函数,请检查那一步的w, h, self.crop_size三个变量的值。self.crop_size应小于等于w和h。若不需要RandomScaleCrop功能,将crop_size设置为w即可,但是crop_size不能比w大。 第二张图的问题可能来自于维度,请检查rgb和r的size(),r应该是[512, 512]或者[256, 256]这种。我没有使用decode_segmap这个函数,读数据其实用不到它。

crop_size就是按源代码里的设置的512,没有改动

请问你在运行训练文件的时候遇到过无法处理数据的情况吗 image 我接着去跑load_vaihingen image 报这个错误

抱歉,我没有遇到过这两个问题。第一个问题可能出在RandomScaleCrop的函数,请检查那一步的w, h, self.crop_size三个变量的值。self.crop_size应小于等于w和h。若不需要RandomScaleCrop功能,将crop_size设置为w即可,但是crop_size不能比w大。 第二张图的问题可能来自于维度,请检查rgb和r的size(),r应该是[512, 512]或者[256, 256]这种。我没有使用decode_segmap这个函数,读数据其实用不到它。

crop_size就是按源代码里的设置的512,没有改动

我当时可以正常训练,可能根据自己数据集做了部分调整,但是基本正常,只是检测环节有些黑色的无法解决。

twsha commented

请问你在运行训练文件的时候遇到过无法处理数据的情况吗 image 我接着去跑load_vaihingen image 报这个错误

抱歉,我没有遇到过这两个问题。第一个问题可能出在RandomScaleCrop的函数,请检查那一步的w, h, self.crop_size三个变量的值。self.crop_size应小于等于w和h。若不需要RandomScaleCrop功能,将crop_size设置为w即可,但是crop_size不能比w大。 第二张图的问题可能来自于维度,请检查rgb和r的size(),r应该是[512, 512]或者[256, 256]这种。我没有使用decode_segmap这个函数,读数据其实用不到它。

crop_size就是按源代码里的设置的512,没有改动

我当时可以正常训练,可能根据自己数据集做了部分调整,但是基本正常,只是检测环节有些黑色的无法解决。

我这用的数据集就是原数据集,问一下你的label是mask形式的还是彩色的