前提
pythonを用いて機械学習を行っています.
使用しているCNNモデルはResNet50V2です.
現在は80×80の二値画像(チャネル数1)を入力として学習を行っています.
実現したいこと
該当のソースコード
現在はResNet50V2を以下のように設定しています.
python
from tensorflow.keras.applications.resnet_v2 import ResNet50V2 input_shape = (80, 80, 1) #80×80の二値画像(チャネル数1)を入力 base_network = ResNet50V2( include_top=True, # 全結合層を含む weights=None, input_tensor=None, input_shape=input_shape, pooling=“max”, classes=50, # クラス数は50)
試したこと
限られたデータ数で転移学習を行うために,こちらを参考に以下のことを実現しようとしましたが,これらの設定を同時に適用することはできないらしくエラーが発生してしまいます.
- 最終結果を得るために全結合層は必要?(include_top=True)
- 転移学習を行うためにはweights="imagenet"である必要がある
- (80, 80, 3)の画像はメモリエラーが懸念されるため,入力画像は(80, 80, 1)のままにしたい(input_shape = (80, 80, 1))
- 自分のデータに合わせてクラス数を設定できるようにしたい(classes=50)
自分では解決方法が分からなかったため質問させていただきました.
これらを同時に満たせる方法などあれば教えていただきたいです.
よろしくお願いします.
補足情報(FW/ツールのバージョンなど)
ubuntu 20.04
Python 3.8.10
tensorflow-gpu 2.5.3
keras 2.8.0
numpy 1.19.5
jupyter lab 2.3.2
0 コメント