I wrote a code in matlab to extract a famous pre-trained neural network features from my dataset:
list_of_images_names = dir("./imagenet_fall2011_oneImagePerCat_21-2k_20230309");
n_images = length(list_of_images_names);
n_feat_selection = 1000; %select 1000 random features from the network
%%
net = alexnet;
sz = net.Layers(1).InputSize;
faild = []
%%
dictionary_imagenames_features = dictionary();
layers_to_extract = ["conv2", "conv4", "fc6", "fc8"];
for j= 1:length(layers_to_extract)
dictionary_imagenames_features = dictionary();
dictionary_name = "imgnet19k_less_feature_map_20230412_alexnet_" + layers_to_extract(j) + "_dict.mat";
for i= 1:length(list_of_images_names);
%I = imread("./imagenet_fall2011_oneImagePerCat_21-2k_20230309" + list_of_images_names(i))
if(i==1 | i==2)
continue;
end
try
image_dir = "./imagenet_fall2011_oneImagePerCat_21-2k_20230309/" + list_of_images_names(i).name;
I = imread(image_dir);
I = imresize(I, sz(1:2)); %resize the image to the input size of the network
features = activations(net, I, layers_to_extract(j));
features = squeeze(features);
features = features(:);
feat_size = numel(features);
features_1000 = features(randperm(feat_size, n_feat_selection));
dictionary_imagenames_features(list_of_images_names(i).name) = {features_1000};
catch
failed = [failed, list_of_images_names(i).name];
end
end
save(dictionary_name, "dictionary_imagenames_features");
end
So I save these as
.mat
files.
Then I try to read them in python:
annots = loadmat(normal_semantic_features_dir + 'cnn2_keys_in_order_imagenet_19k_v2.mat')
for k, v in annots.items():
print(k,"........" ,annots[k])
print("....")
and answer is:
__header__ ........ b'MATLAB 5.0 MAT-file, Platform: PCWIN64, Created on: Fri Apr 14 13:32:47 2023'
....
__version__ ........ 1.0
....
__globals__ ........ []
....
None ........ [(b'keys_in_order', b'MCOS', b'string', array([[3707764736],
[ 2],
[ 1],
[ 1],
[ 1],
[ 1]], dtype=uint32))]
....
__function_workspace__ ........ [[ 0 1 73 ... 0 0 0]]
....
I wonder how to get access to the elements, and convert it to a python dictionary.
Thank you very much.