I want implement VGG Face Descriptor in python. But I keep getting an error:
TypeError: can only concatenate list (not "numpy.ndarray") to list
My code:
import numpy as np
import cv2
import caffe
img = cv2.imread("ak.png")
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
net = caffe.Net("VGG_FACE_deploy.prototxt","VGG_FACE.caffemodel", caffe.TEST)
print net.forward(img)
Can you help me ?
UPDATE 1
This working code is example in matlab
% Copyright (c) 2015, Omkar M. Parkhi
% All rights reserved.
img = imread('ak.png');
img = single(img);
Img = [129.1863,104.7624,93.5940] ;
img = cat(3,img(:,:,1)-averageImage(1),...
img(:,:,2)-averageImage(2),...
img(:,:,3)-averageImage(3));
img = img(:, :, [3, 2, 1]); % convert from RGB to BGR
img = permute(img, [2, 1, 3]); % permute width and height
model = 'VGG_FACE_16_deploy.prototxt';
weights = 'VGG_FACE.caffemodel';
caffe.set_mode_cpu();
net = caffe.Net(model, weights, 'test'); % create net and load weights
res = net.forward({img});
prob = res{1};
caffe_ft = net.blobs('fc7').get_data();
caffe.io.load_image
? – Sooksooncaffe.io.load_image
s i get same errorTypeError: can only concatenate list (not "numpy.ndarray") to list
. If I try passing a single element list to method i get errorTypeError: unhashable type: 'numpy.ndarray'
– Corticosteronenet.forward_all
instead offorward
. – SooksoonTypeError: unhashable type: 'numpy.ndarray'
– Corticosteroneall_outs = {out: [] for out in set(self.outputs + (blobs or []))}
. Line 174. – Corticosterone'VGG_FACE_16_deploy.prototxt'
please? – SooksoonVGG_FACE_16_deploy.prototxt
- link – Corticosteronenet.forward_all(data=[img])
? – Sooksoonnet.forward_all(data = [img])
I get errorAttributeError: 'list' object has no attribute 'shape'
(caused by line 101). But when i trynet.forward_all(data = img)
i get errorValueError: could not broadcast input array from shape (1,224,3) into shape (1,3,224,224)
(caused by line 176 and then 103). This maybe resolve UPDATE 1 in my post but i dont know synatx of matlab language. Do you know what happen with image from read image to callres = net.forward({img});
– Corticosterone