書いてる理由
- 顔の画像から年齢と性別を判定したい
- 性別はクラス分類、年齢は回帰
- 二つのモデルを作るのではなく、1つのモデルで同時に二つ出力したい
やったこと
二つのoutputをもつモデルを作るところまで(途中)
参考
詳細
https://github.com/ys201810/keras_work/tree/master/src
が作りかけ。
結果
model作成時、model.add(conv2d)とかの方法で指定した入力を入れる方法が不明だったので、
x = conv2d()(x)形式で作っていき、最後の二つを以下のようにしてみた。
output1 = Dense(num_classes, activation='softmax', name='output1')(x) output2 = Dense(1, activation='sigmoid', name='output2')(x)
今の所、モデルは正常に作成されたことが確認できたけど、正しいか不明。
次は、modelコンパイルを以下のようにしてみて、動作するか確認。
model.compile(optimizer=Adam(lr=0.005, beta_1=0.5), loss=(['categorical_crossentropy', 'mean_squared_error']), loss_weights=([0.7, 0.3]), metrics=['accuracy'])