Can I extract the pretrained encoder part from 3D Unet to use it in classification?

4 ビュー (過去 30 日間)
Hi,
I would need a pretrained 3D CNN for MRI-volume classification. Unfortunately they are not so easily available, especially models pretrained with MRI-data. I was thinking, could I extract the encoder part of the pretrained 3D-Unet used in the example https://se.mathworks.com/help/deeplearning/ug/segment-3d-brain-tumor-using-deep-learning.html , and then use that as a 3D CNN classification network by adding a fullyConnectedLayer onto it? Downloading the pretrained network gets me a DAGNetwork, but how do I extract the encoder layers from it and their trained weights and form a new 3D CNN classifier with them?

採用された回答

Jack Xiao
Jack Xiao 2021 年 2 月 21 日
you can try, but i think it would not make big sense as Unet is for regression while your taks is classification.
to tranfer the part of the net, first you should extract the desired layers (encoder layers), then you should layergraph ( see the demo of layergraph function) them as unet is not a sequence net.
  1 件のコメント
Juuso Korhonen
Juuso Korhonen 2021 年 2 月 23 日
Thanks for the answer. Do you have some other recommendations for 3D CNN to use for classification?

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

その他の回答 (1 件)

Shashank Gupta
Shashank Gupta 2021 年 2 月 22 日
Hi,
Yes you need to convert the DAGNetwork to layer Graph as mentioned by @Jack Xiao, you can do this by simply using layerGraph function, then access the encoding layer and form a new network by adding your desired classification layer. Check out this transfer learning example. This will give you some headstart on how to approach your problem.
I hope this helps.
Cheers.

カテゴリ

Help Center および File ExchangeImage Data Workflows についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by