DAGネットワークにおける複数入力について
조회 수: 3 (최근 30일)
이전 댓글 표시
複数入力のDAGネットワークの設計を考えています。
下記図はイメージです。
上記のような複数のimageinputにそれぞれ異なる画像を入力したいと考えています。
trainNetworkの関数を用いる際、どのように書いて、指定すればよろしいでしょうか?
よろしくお願いいたします。
댓글 수: 3
채택된 답변
Shunichi Kusano
2020년 2월 6일
こんにちは。
複数入力一出力の場合(Multi Input Signle Output = MISO)、combine関数でデータストアをひとまとめにしてからtrainNetworkに入力します。このとき、ラベルも一緒にcombineしてあげる必要があるのですが、ラベルだけを管理するdatastoreは現状無いため、ここだけカスタムで作成する必要があります。正式なサポートプロダクトではありませんが、カテゴリカルデータを扱えるカスタムのdatastoreを添付しますので、お使いください。
以上を踏まえてコードの大まかな流れは以下のようになります。
% 画像のデータストアは準備しておく。imds1, imds2とする
% ラベルのデータストアを作成(ラベルはカテゴリカル型のベクトルとして作成しておく。categoricalVectorとする。
labelds = CategoricalDatastore(categoricalVector); % 添付のプログラムを使う
% combineで画像1、画像2、ラベルのデータストアをひとまとめにする
combds = combine(imds1, imds2, labelds);
% 学習(ネットワークとオプションはすでにできているとして)
net = trainNetwork(combds, lgraph, options);
ネットワークにおける入力層の順番は、作成したレイヤーグラフのInputNamesというフィールドでわかります。この順番と、combineした順が対応しますので、combineで入力した一番目のimds1はInputNames(1)に、2番目のimds2はInputNames(2)の入力層に投入されます。今回はどちらでもいいかもしれませんが…。
augmentationなどが必要な場合は、transform関数でtransformedDatastoreを作って、それをcombineするのがいいです。
作成していてまたわからないことがありましたら質問してください。
下記は参考まで
combinedDatastore: https://www.mathworks.com/help/matlab/ref/matlab.io.datastore.combineddatastore.html
trainNetworkでのcombinedDatastoreの関連記述:
댓글 수: 7
Rd
2020년 11월 17일
Dear Kenta,
I too need to do the same thing asmentioned by Yuki Yoshino. I have sequence of six convolutional, relu, batchnormalization and maxpooling layer. i have trained the network with three separate images. Finally i need to fuse these three output. At which layer i have to perform fusion and why? how to do fusion?
Thanks.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 イメージ処理の深層学習에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!