Skip to content

Unexpected output from inference mode. #1

@hasoweh

Description

@hasoweh

I am working with remote sensing imagery and am getting very strange outputs from the model in ference mode. I am using weights from the crowdai building segmentation challenge which I fine-tuned using my own data. When I loaded those weights into the model and tried to run an inference on a few images I got the following:

image

My classification only uses 2 classes (background and one target class). Any idea why I am getting this image showing so many other classes?

Here is the code I use to run the inference. The weights I used were not that great (val_loss of 2.96) but this was more just to see how the network was performing before I try and fine-tune network hyperparameters.

# inference code
d_cnn = HedgeCNN(mode=inference, config=InfHedgeConfig(), model_dir=/mnt/dataDL/ahls_st/Data/Data3/Scripts/logs/)
d_cnn.load_weights(os.path.join(root, weights.03-2.96.hdf5), by_name=True)

output_dir = os.path.join(root, output_data)
dataset_dir = root
subset = testing

detect(d_cnn, dataset_dir, subset, output_dir)

And here is my config file:

# Train on 1 GPU and 8 images per GPU. We can put multiple images on each
# GPU because the images are small. Batch size is 8 (GPUs * images/GPU).
GPU_COUNT = 1
IMAGES_PER_GPU = 2

# Number of classes (including background)
NUM_CLASSES = 1 + 1  # background + hedge

# Use small images for faster training. Set the limits of the small side
# the large side, and that determines the image shape.
IMAGE_MIN_DIM = 320
IMAGE_MAX_DIM = 320

# Use smaller anchors because our image and objects are small
RPN_ANCHOR_SCALES = (4, 8, 16, 28, 40)  # anchor side in pixels

# Num of training images / batch size (I add a few more steps because data augmentation creates a few more images?)
STEPS_PER_EPOCH = 70

# Num of valid. images / batch size
VALIDATION_STEPS = 30

#can play with this to see what gives best accuracy
DETECTION_MIN_CONFIDENCE = 0.8

#todo
RPN_ANCHOR_RATIOS = [0.33, 1, 14]

#True is good when using high resolution images. Planet isnt that high?
USE_MINI_MASK = False

#mean pixel values for each band.
MEAN_PIXEL = np.array([241, 511, 477])

MAX_GT_INSTANCES = 50

DETECTION_MAX_INSTANCES = 50

#keep a positive:negative
# ratio of 1:3. You can increase the number of proposals by adjusting
# the RPN NMS threshold.
TRAIN_ROIS_PER_IMAGE = 400

LEARNING_RATE = 0.0001
LEARNING_MOMENTUM = 0.8

# Weight decay regularization
WEIGHT_DECAY = 0.0001`

I made a few other changes due to having troubles with NaN losses. Thus, I have changed the optimizer to adam, and added some epsilons to the rpn losses. If anyone is interested in what I mean about this I can find the code I changed, but I think this isn't related to my current issue.

Any help would be great!!!!

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions