This command does not work in FastAI version 2.
from fastai.vision import DatasetType, open_image
I was trying to calculate the features of image using the below code
What would be the equivalent of DatasetType in fastai v2
def compute_features_learner(
data, dataset_type: DatasetType, learn: Learner, embedding_layer: Module
) -> List[Dict[str, np.array]]:
if dataset_type == DatasetType.Train or dataset_type == DatasetType.Fix:
dataset_type = (
DatasetType.Fix
) # Training set without shuffeling and no dropping of last batch. See note above.
label_list = list(data.train_ds.items)
elif dataset_type == DatasetType.Valid:
label_list = list(data.valid_ds.items)
elif dataset_type == DatasetType.Test:
label_list = list(data.test_ds.items)
else:
raise Exception(
“Dataset_type needs to be of type DatasetType.Train, DatasetType.Valid, DatasetType.Test or DatasetType.Fix.”
)
# Update what data the learner object is using
tmp_data = learn.data
learn.data = data
# Compute features
featurizer = SaveFeatures(embedding_layer)
learn.get_preds(dataset_type)
feats = featurizer.features[:]
# Set data back to before
learn.data = tmp_data
# Get corresponding image paths
assert len(feats) == len(label_list)
im_paths = [str(x) for x in label_list]
return dict(zip(im_paths, feats))