Hello,
I was going through the code and found one loophole that may destroy the whole purpose of purchasing. Of course, it is very much possible that I am mistaken. In any case, I thought it would be nice to make the @aicrowd fellows aware of this.
for sample in tqdm(unlabelled_dataset):
idx = sample["idx"]
image = unlabelled_dataset.__getitem__(idx)
print(image)
# Budgeting & Purchasing Labels
if budget > 0:
label = unlabelled_dataset.purchase_label(idx)
budget -= 1
print(idx)
print(label)
break
The above snippet is taken from the purchase_phase
function, I added the line to get the image for an idx
. I understand that we cannot make any changes in the dataset.py
file and I have not done any. Here when I print the image
variable, I can see the whole dictionary of respective id
, including the labels. Therefore the logic of the budget gets nullified. I am saying this based on the docstring comment in this function which says this:
You can iterate over both the datasets and access the images without restrictions.
However, you can probe the labels of the unlabelled_dataset only until you
run out of the label purchasing budget.
With the code that I posted here, I can access to unlabelled dataset exclusively without purchasing any label whatsoever.