Is it possible to initialize a conv2D layer with custom weights (from other layer for ex) ?
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alla am 31 Jul. 2019
Bearbeitet: Alla am 7 Aug. 2019
I need to use weights from a different network conv layer to initialize another conv layer, the closest thing I could find was the custom initialization function but I'm still unsure if that is possible to do or not. Would the data returned by the training function be useable for something like this?
One more question, is there a way to access individual channels within a conv2d layer, I can set paramters for the whole layer, is it possible to do so for specefic channels, like set the learning factor to zero for one specefic filter?
Srivardhan Gadila am 6 Aug. 2019
Bearbeitet: Srivardhan Gadila am 7 Aug. 2019
Using weights of different network to the current network:
for 2 networks net1 & net2, copy the layers to some variable
layers = net1.Layers;
layers(net1layerindex).Weights(net1index) = net2.Layers(net2layerindex).Weights(net2index);
Let's say you want to set weights of a channel of a layer of a CNN to zeros(channelDimension)
layers(convLayerIndex).Weights(:,:,channelIndex) = zeros(channelDimension)
layers(convLayerIndex).Weights(:,:,channelIndex,Index) = zeros(respectiveDimension)
Use the above layers to create a DAG or a Series network. You can also refer to the documentation of the assembleNetwork function which helps creating deep learning networks from layers without training.
I think setting the Learning factor for a specific filter is not possible but you can set it for the whole layer as follows:
layer.WeightLearnRateFactor = 0;
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!