Is it possible to reshape a vector into 3D matrix

20 views (last 30 days)
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

Answers (1)

Stephen23
Stephen23 on 17 Nov 2017
Edited: Stephen23 on 17 Nov 2017
Use reshape:
>> V = rand(1,43264);
>> A = reshape(V,13,13,256);
  3 Comments
Stephen23
Stephen23 on 17 Nov 2017
Edited: Stephen23 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
Mammo Image on 17 Nov 2017
Edited: 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

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!