Я использую виртуальную сеть для классификации изображений, и я хотел бы попытаться:
- классифицировать изображение;
- получить ОДИН вектор характеристик из последнего полностью подключенного слоя;
- изменить этот вектор объектов;
- применить классификацию конвертов к измененному вектору объектов.
Мне удалось получить вектор объектов из последних полностью подключенных слоев:
img_tensor=cnn_mat.reshape(-1,96,96,1)
from keras import models
layer_outputs = [layer.output for layer in model.layers[:13]]
activation_model = models.Model(inputs=model.input, outputs=layer_outputs)
activations = activation_model.predict(img_tensor)[12]
first_layer_activation = activations
Затем я выбрал значение активации моего целевого изображения и изменил его:
data_retrieval = pd.DataFrame(np.copy( first_layer_activation) )
feature_vector=data_retrieval.iloc[0,:]
feature_vector=feature_vector/2
Теперь, как применить классификацию к вектору объектов?
Позвольтея знаю, если это не ясно / нужно больше информации.
Редактировать:
Я получаю последний слой весом с
for layer in model.layers: print(layer.get_config(), layer.get_weights())
weights=layer.get_weights()[0]
weights shape is (256,12) Как умножить его на feature_vector shape 256, чтобы получить вектор размером 12?
Можно ли использовать
* 1037?*