layerGraph in a 3D Convolution Network

Hi, I have a problem to extract the lgraph of my 3d CNN
when I write
net=googlenet;
lgraph = layerGraph(net);
there is no problem.
But when I write
net=myCNNnet;
lgraph = layerGraph(net);
There is an error
"Error using layerGraph (line 58)
The value of 'Layers' is invalid. Layers must be an array of layers."
The analysis of the network is problem free so what seems to be the problem, could you help me?

1 件のコメント

Esra Kaya
Esra Kaya 2021 年 1 月 18 日
The 3d CNN I have been using is the code shared ResNET-18 3d function
I have extracted the final graph of the network like this, so there is not a problem while replacing the layers.
lgraph = layerGraph(net.Layers);
But when I have come to the part to train the network, there is still an error, like the previous one.
netTransfer = trainNetwork(dsTrain,fdsTrain.Labels,layers,options);
Error using trainNetwork (line 170)
Layers argument must be an array of layers or a layer graph.
Please help me how can I fix this, I can't understand where the problem is?

サインインしてコメントする。

 採用された回答

Amir Ebrahimi
Amir Ebrahimi 2021 年 1 月 19 日

0 投票

Hi Esra,
The output argument of ResNET-18 3d function is a layergraph itself. so you do not need to use layerGraph function. Use the output argument of resnet18TL3Dfunction() directly for training.

4 件のコメント

Esra Kaya
Esra Kaya 2021 年 1 月 19 日
編集済み: Esra Kaya 2021 年 1 月 19 日
I have to change the input, fully connected layer and classification layer, because my input has 224x224x60x1 size and 4 different classes so I can't use your function directly, how can I apply it, by saving your network with my changes and directly using it for training? Thanks by the way for quick reply.
I have tried it like this but still got the same error, unfortunately.
lgraph=resnet18TL3Dfunction();
netTransfer = trainNetwork(dsTrain,fdsTrain.Labels,lgraph,options);
Error using trainNetwork (line 170)
Layers argument must be an array of layers or a layer graph.
Amir Ebrahimi
Amir Ebrahimi 2021 年 1 月 20 日
Use replaceLayer function to replace any layer you want. Then, use analyzeNetwork function to analyze the network to see if the dimension of weights matches your new input data. Remeber, at the end, you should have a layerGraph for training.
Esra Kaya
Esra Kaya 2021 年 1 月 22 日
I will accept the answer but, still got the same problem, I can not think of anything else to solve this.
Amir Ebrahimi
Amir Ebrahimi 2021 年 1 月 22 日
Send me your email address via private message. Your profile is close to receive direct messages.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeDeep Learning Toolbox についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by