How to manually change pre-trained CNN's (AlexNet) weights?
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
To whom can help:
I am using MATLAB r2017a. I am trying to change the weights of a pre-trained CNN, like alexnet, using the following codes. Unfortunately, I got the following errors. Are there any suggestions to by-pass this read-only constrain?
Thanks a lot! Jason
" You cannot set the read-only property 'Layers' of SeriesNetwork"
% code
>> net=alexnet
>> net.Layers(2,1).Weights=net.Layers(2,1).Weights*10;
0 Kommentare
Antworten (3)
J
am 16 Apr. 2018
Bump! I have a hard time believing that one cannot take an existing SeriesNetwork, and either:
1. Modify properties of it, or...
2. ... create a new SeriesNetwork that is a copy of the existing one, but has different values for certain properties
Also, I would image there is a way to take an existing SeriesNetwork, then addLayers/removeLayers/connectLayers and convert back to a SeriesNetwork, rather than being stuck with the DAGNetwork that is generated (if it really is naturally represented as SeriesNetwork)? Or if not, that there is some workaround?
I mean, it makes NO SENSE that if, for example, I have a SeriesNetwork with a dropoutLayer at default 0.5 that I can't just modify that to 0.25 or 0.6 or whatever I want and then re-train without having to convert to a DAGNetwork and then be stuck with a DAGNetwork (certain functions will only operate on SeriesNetwork--take for example, deepDreamImage).
0 Kommentare
mizuki
am 13 Aug. 2017
In R2017a, the only supported way to create a SeriesNetwork is to use trainNetwork, and it is not possible to modify it.
1 Kommentar
DL
am 29 Mär. 2021
You can convert the DAG net to an object and then change that object with is a structure, then load that back. It is a possible way.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Image Data Workflows finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!