# Is it possible to reshape a vector into 3D matrix

41 views (last 30 days)
Mammo Image on 17 Nov 2017
Edited: Mammo Image on 17 Nov 2017
I have a conv layer output which is 13x13x256. I have gotten the output feature of this layer using activations function in matlab as:
Feature = activations (net, trainingset, 15);
The feature is a vector equal to 43264. I need to re-enter this vector to the next layer which has an input size 13x13x256.
So how could I do that, should I reshape the feature vector to 13x13x256 matrix? how I do that?
Help me and thank you

Stephen Cobeldick on 17 Nov 2017
Edited: Stephen Cobeldick on 17 Nov 2017
Use reshape:
>> V = rand(1,43264);
>> A = reshape(V,13,13,256);

Mammo Image on 17 Nov 2017
Many Thanks Stephen, what about if I concatenate V such as:
V = [V, V];
Then, Should I do the change in the next layer input or is there a way to convert the new feature vector to 13x13x256.
Many Thanks again
Stephen Cobeldick on 17 Nov 2017
@Mammo Image: Whatever the number of elements the input array has, the reshaped array must contain exactly the same number of elements. So if you provide this:
V = rand(1,43264);
W = [V,V];
then you can do any of these:
A = reshape(W,2*13,13,256);
A = reshape(W,13,2*13,256);
A = reshape(W,13,13,2*256);
and no doubt many other sizes as well. Which one you want depends on your algorithm, which you have explained absolutely nothing about.
Mammo Image on 17 Nov 2017
Thank you again, I have mentioned that I am using conv layer in deep learning (alexnet) and got the feature from the conv layer with dimension 43264, the thing is I want to feed these feature into another layer which it's input size should be 13x13x256.
for that reason, I am wondering if I did some change in the size of these features (for example concatenation with others), so then, is it possible to be as 13x13x256 to be suitable input for the second layer.
I think the second answer will give 26x13x256 which is not suitable input for the second conv layer.
Thanks