Failed without log

In my second submission to the descriptor track, it failed without logs. I only see:

unable to retrieve container logs for containerd://e90b0c5af870eb6bfa2c0e234831696d0dc870de905725df9ce67cbfd0af9e6f

Could you help me?

Hi Wenhaowang-
We are investigating and will report back when we identify the cause.
-Chris

After running the runtime locally, I find the reason may be that the 112G memory is not enough (It may need 150G memory). But I exactly follow the requirement by one second one feature. Could you increase the memory limitation to 200G?

The “one second one feature” setting results in 323060 query features and 1267840 ref features.

What is the number of features generated by the SSCD baseline? The number of features from mine seems to be very similar to the number of features from SSCD (less than a 1% difference).

The baseline uses 346,002 query features and 1,260,713 ref features. We don’t see memory problems with the baseline, but we reproduced that your submission does run out of memory. We are working to figure out the root cause of the memory issue and will report back when we have more information.

Ok, thanks a lot!!! Hope it solved soon.

@wenhaowang How many dimensions per descriptor are you using?

I use 512 dim. The same as yours

Hi guys, I may find out the reason:
Considering the code

def load_features(f, dataset: Optional[Dataset] = None):
    data = np.load(f, allow_pickle=False)
    video_ids = data["video_ids"]
    feats = data["features"]
    timestamps = data["timestamps"]

    ts_dims = len(timestamps.shape)
    if timestamps.shape[0] != feats.shape[0]:
        raise ValueError(
            f"Expected the same number of timestamps as features: got "
            f"{timestamps.shape[0]} timestamps for {feats.shape[0]} features"
        )
    if not (ts_dims == 1 or timestamps.shape[1:] == (2,)):
        print(f"timestamps.shape[1:]: {timestamps.shape[1:]}")
        print(f"timestamps.shape[1:] == [2]: {timestamps.shape[1:] == [2]}")
        raise ValueError(f"Unexpected timestamp shape. Got {timestamps.shape}")

    results = []
    for video_id, start, end in same_value_ranges(video_ids):
        video_id = format_video_id(video_id, dataset)
        results.append(
            VideoFeature(
                video_id=video_id,
                timestamps=timestamps[start:end],
                feature=feats[start:end, :],
            )
        )
    return results

It requires the names of queries are listed in sequence: i.e. Q200000, Q200000, Q200001, Q200001.

But mine is not arranged as this. Mine is something like Q200044, Q200000, Q200001, …

I think it is the problem, but I am not pretty sure.

Can you try submitting with sorted descriptors and see if it goes through? If that is the issue, we should be able to modify the eval script to handle this sorting automatically.

Yes. I am trying to do this.

Ah, I see. If you use the store_features function in that file it will create features in the expected format.

That requires putting features into the VideoFeature format though.

Ed

Haha. I write nearly all the code by myself and do not use that.

@chrisk-dd It works. It is the sorting issue. Thanks.

Thanks too! @edpizzi