Results submission

Hi, thank you for the challenge!

I’m experiencing a problem with submitting my results to the platform. I do the following:

  1. I downloaded and unzipped test data
  2. I use your starter notebook and run the cell which creates predictions with path to the test data
  3. Then, I run “create_submission” with these predictions
  4. I download this files, try to submit and … get “Error: seismic-92515931.npy-i_0 and target-92515931.npy-i_0 have different shapes”

I have compared it to your test submission and realized that shapes were indeed wrong. However, there are several things that unclear to me:

  1. Test does not specify which patch we should predict on which means that targets created on our own are always different from ones specified by you and the score will always be close to zero.
  2. Do we need to have the same file names in our submission as in the sample submission. The sample submission uses “target” instead of “seismic”. The secind one is from names of files in the test.

I’m pretty sure that I misunderstood something and will be happy to get some help with it. Thanks!

Ok, I found our that slices for predictions are filled with nans in test files

Thanks for the question @sanektim! Hopefully we can explain a bit further.

The test data that has been provided will have a 25% block of the volume set to nan. In the training data we provide both the volume with a missing block of data and the missing block of data. Your job is to predict the missing block of data in the test dataset. Your output for the submission file generator should have the same shape as the missing blocks of data in the test set. When you run this through the submission file generator, it will select 3 inlines and 3 crosslines for SSIM scoring. You will need to predict the full 3D missing section, as you do not know where the submission code will extract.

Please keep name the same as the example in the starter notebook (target_<volume_id here>.npy).

Keep up the great work!

Onward Team

1 Like

HI Guys
I am exasperated. I do not see how the shape of my submission can possibly be different from the original. I took the target array and filled with a dummy value as an experiment on the format.
My target shape: (75, 300, 1259) Again, this is the original from training_data_generator
My first parameter, the name of the source volume: “example_seis_vol_2.npy”
cheers, Eric

I have this error “Error: seismic-92515353.npy-i_0 and target-92515931.npy-i_0 have different shapes”
However I check and check and I’m sure that it’s the same.

can someone help me

Hi @lori.eric9797 & @yodharinmonplub,

A few things to keep in mind:

  • The shape of the full dataset is (300,300,1259)
  • The shape of the targets will be either (300,75,1259) or (75,300,1259)
  • Your prediction volumes should match the shape of the missing blocks of data in the test data
  • The test data are (300,300,1259) seismic volumes that contain a block of data of size (300,75,1259) or (75,300,1259) set to nan

Check to make sure you are creating the submission file correctly. create_submission() will require three inputs in order to create a correct submission format; seismic_filenames is a list of the test data filenames, predictions is a list of the target Numpy arrays (what your model is predicting), and submission_path is the local location the submission file will be saved.

The create_submission() function works by extracting 6 2D slices from each of the target volumes, so the submission file shapes are not equal to the target file shapes.

To help with this, please use this code snippet below to help identify target areas and shapes in the test volumes:

def get_mask(seismic):
“”"
Function for mask extraction from volume with deleted patch.

      Parameters:
          seismic: np.ndarray 3D matrix of survey with deleted patch.
          
      Returns:
          target_mask: np.ndarray, position of target 3D matrix inside seismic 3D matrix.
  
      """
target_mask = np.zeros(seismic.shape).astype('bool')
nans = np.argwhere(np.isnan(seismic[:, :, :]))
indices = [(nans[:, i].min(), nans[:, i].max()+1) for i in range(len(seismic.shape))]
target_mask[indices[0][0]:indices[0][1], indices[1][0]:indices[1][1], indices[2][0]:indices[2][1]] = True

return target_mask

generated_mask = get_mask(volume_with_deleted_patch)

You can check your target volume size like this:

np.array_equal(target_mask, generated_mask)

Hello!
I encounter the following error and cannot understand why something is wrong. This error says that different test targets have different shapes, but the initial test volumes have different orientations along which the patches with nan are. Therefore, the shapes of the targets are (300, 75, 1259) and (75, 300, 1259), respectively.
So, does this error imply that I need to transpose xlines targets and make all the targets be of shape (75, 300, 1259)? Or I misunderstood something?
Thank you so much in advance!

I had the same issue. It looks like the order of slices in the submission file is important. I ordered it in the similar to the sample submission file and it was accepted.

Hey!
What do you mean by ‘order of slices’? If you mean order in list of keys of .npz file, I have the same order as in the example:
image

I mean the order in the ‘Submission Sample’ which is available for download.

loaded_sample = np.load('../patch-the-planet-sample-submission.npz')
for i in loaded_sample.items():
    print(i[0])

target-92515355…

target-92515931…

target-92551495…

Thank you Dmitry!! I have been having a terrible time here. Why the order of the file names should matter seems strange. I had assumed that the names were a key to the values of the correct slices. It is only a little progress. I am no longer getting the bad shape message. It seems I crashed the scoring algorithm.

Anyway, for anyone still struggling here, this file order seems to work:
file_names = [‘seismic-92515355.npy’,
‘seismic-92515931.npy’,
‘seismic-92551495.npy’,
‘seismic-92515357.npy’,
‘seismic-92508315.npy’,
‘seismic-92515353.npy’,
‘seismic-92515932.npy’,
‘seismic-92568236.npy’,
‘seismic-92551498.npy’,
‘seismic-92568004.npy’,
‘seismic-92551496.npy’,
‘seismic-92568235.npy’,
‘seismic-92515930.npy’,
‘seismic-92515356.npy’,
‘seismic-92551497.npy’]

I don’t think getting this sequence right is appropriate for a contest of this difficulty, The number of possible orderings is 15!, 15 factorial.
cheers, Eric

Hi Guys
I am no longer getting the message of a shape mismatch. Now I have a new error message:
Scoring algorithm failed

This is not very informative.
cheers, Eric

Hi @lori.eric9797

Thank you for letting us know about the error message, our engineering team is looking into this at this time.

Onward Team

Hi Guys
I tried my submission again today with the same error message:
Scoring algorithm failed
This reminds me of my intro to programming, a 1/2 unit class in Fortran. This was in the era of punch cards. I would labor over my program and get back the cryptic message: syntax error
This 1/2 unit course cost me as much time as any of my other courses.

This was only a dummy submission to test the format, and had nothing to do with the actual goal of the contest. The patch was filled with a constant. I did have a thought. At any point does the scoring invert a matrix? A matrix with identical rows will be singular.
Shorts weather today here in Bishop.
cheers, Eric

It appears that the right order for the keys comes from the ordering in the sample-submission provided. The file listing order can be populated by:

“”"

get the right order from the sample-submission provided

sample_sub = np.load(‘…/patch-the-planet-sample-submission.npz’, allow_pickle=True)
target_order =
for filename in list(sample_sub.keys()):
filename = filename.split(‘.’)[0].replace(‘target’, ‘seismic’) + ‘.npy’
if filename not in target_order:
target_order.append(filename)

“”"

however, I also got the new error message “scoring algorithm failed”

@team is it possible to either provide a sample submission for private leaderboard testing or fix this issue in the scoring algorithm?

Hi @dmitry.ulyanov.msu

This will not be an issue for Final Submissions on the hold out data. For the Predictive Leaderboard there are a couple of options to verify the slice submission order listed above.

Onward Team

1 Like

@team, I am still having the problem of “Scoring algorithm failed…”, any update on this??

1 Like

Hi @gowrishankarirwog and welcome to the Onward community :wave:

Please check the .npz format for your submission and ensure that it matches the sample submission example provided with the starter notebook for this challenge.

Onward Team

@team I also got the new error message “scoring algorithm failed”. The npz file seems plausible to me for keys and included array type (uint8).

[‘seismic-92515355.npy-i_0’,
‘seismic-92515355.npy-i_1’,
‘seismic-92515355.npy-i_2’,
‘seismic-92515355.npy-x_0’,
‘seismic-92515355.npy-x_1’,
‘seismic-92515355.npy-x_2’,
‘seismic-92515931.npy-i_0’,
‘seismic-92515931.npy-i_1’,
‘seismic-92515931.npy-i_2’,
‘seismic-92515931.npy-x_0’,
‘seismic-92515931.npy-x_1’,
‘seismic-92515931.npy-x_2’,
…]

What’s wrong with it?