How to manually change pre-trained CNN's (AlexNet) weights?
2 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (3 件)
J
2018 年 4 月 16 日
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 件のコメント
mizuki
2017 年 8 月 13 日
In R2017a, the only supported way to create a SeriesNetwork is to use trainNetwork, and it is not possible to modify it.
1 件のコメント
DL
2021 年 3 月 29 日
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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Image Data Workflows についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!