How can I modify the weights of a pre-trained Alexnet in 2018a?
3 views (last 30 days)
Show older comments
Hi everybody. For a research project I need to modify the weights of a pre-trained Alexnet. When I try to do so:
net = alexnet;
net.Layers(2).Weights = net.Layers(2).Weights * 0.01;
Matlab 2017b answers me that they are read-only values. Since it looks a very strong limitation, does anybody know if in version 2018a they solved that problem? Or maybe someone has solve it with a script?
Thanks.
0 Comments
Answers (1)
Mingrun Wang
on 22 Jun 2018
layers=net.Layers; layers(2).Weights=layers(2).Weights * 0.01; And i also provide you the following ways to make up for the conversion between external layer and internal layer.(external layer is the wrapper for internal layer) externalLayer→internalLayer: nnet.cnn.layer.Layer.getInternalLayers( externalLayers ) %this function will return an internal instance(copy).
internalLayer→externalLayer:externalLayersConstructor(e.gnnet.cnn.layer.FullyConnectedLayer(internalLayer));
create an internal layer(e.g nnet.internal.cnn.layer.FullyConnected(name,inputsize,outputsize));
0 Comments
See Also
Categories
Find more on Image Data Workflows in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!