multitask学習に関して質問があります。下記のようなコードを使用して多入力,多出力のマルチタスク学習を実装しました。x_train_T1, x_train_T2 は Task 1, Task 2 それぞれへの入力データ. y_train_T1と y_train_T2 はTask1, Task2それぞれのラベルデータ(0/1)です。. x_train_T1とx_train_T2は同じ次元の特徴量ベクトルです(1443次元)。ですが両者はデータ数が異なります。Task1に対しては1213個のデータサンプルがありますがTask2に対しては1271個のデータサンプルのみ存在します。
python
1input_T1_tensor=Input(shape=(x_train_T1.shape[1],),name='T1_input') 2input_T2_tensor=Input(shape=(x_train_T2.shape[1],),name='T2_input') 3concatenated=layers.concatenate([input_T1_tensor,input_T2_tensor],axis=-1) 4x=Dropout(concatenated) 5x=layers.Dense(x) 6T1_layer=layers.Dense(10,activation='relu')(x) 7T2_layer=layers.Dense(10,activation='relu')(x) 8T1_out=layers.Dense(1,activation='sigmoid',name='T1_out')(T1_layer) 9T2_out=layers.Dense(1,activation='sigmoid',name='T2_out')(T2_layer) 10model=Model(inputs=[input_T1_tensor,input_T2_tensor],outputs=[T1_out,T2_out]) 11model.compile(loss={'T1_out':'binary_crossentropy','T2_out':'binary_crossentropy'},optimizer='adam',metrics=['accuracy']) 12model.fit([x_train_T1,x_train_T2],[y_train_T1,y_train_T2],epochs=epoch,batch_size=batch,verbose=0,validation_split=0.1,callbacks=[early_stopping])
このような状況でコードを実行すると下記のようなエラーコードが出ます。
All input arrays (x) should have the same number of samples. Got array shapes: [(1213, 1443), (1271, 1443)]
私が知りたいのはタスクごとにデータ数が異なる際にマルチタスク学習を行うことが可能なのかどうかという点です。stackoverflowでも同様の質問をさせていただいておりますが,こちらでも確認のため質問を投稿させていただきます。よろしくお願いいたします。
あなたの回答
tips
プレビュー