Загрузите изображения, имеющиеся в каталоге, в Keras для обучения модели MULTI OUTPUT - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть модель с несколькими выходами, заданная как

inputs = tf.keras.layers.Input(shape=(128, 128, 3))
x = inputs
x = layers.Conv2D(32,3,activation='relu')(x)
x = layers.Conv2D(32,3,activation='relu')(x)
x = layers.MaxPool2D(2)(x)
x = layers.Dropout(0.3)(x)
x = layers.Flatten()(x)
x = layers.Dense(64,activation='relu')(x)

gender_out = layers.Dense(2,activation='sigmoid',name='gender_out')(x) # first output
age_out = layers.Dense(1,activation='relu',name='age_out')(x) # second output

model = tf.keras.models.Model(inputs=inputs, outputs=[gender_out, age_out])


loss_funcs = { "gender_out": 'binary_crossentropy',"age_out":'mae'}

model.compile(optimizer='Adam',loss=loss_funcs,metrics=['accuracy'])

, и у меня есть пути к моим изображениям и соответствующие метки в DataFrame как:

         img_path                                           age gender                                      
16950   /kaggle/input/UTKFace/26_1_3_20170109134536902...   26  1   
20465   /kaggle/input/UTKFace/26_1_1_20170114031102802...   26  1   
18407   /kaggle/input/UTKFace/10_1_0_20170109202346880...   10  1   
656     /kaggle/input/UTKFace/7_1_3_20161220222033539....   7   1
7368    /kaggle/input/UTKFace/2_1_2_20161219153833780....   2   1   

ПРОБЛЕМА

Когда я загружаю данные в OpenCV, чтобы уместить их в модель, выдается ошибка:

df = df.sample(frac=1.0)

gender = df['gender'].tolist()
age = df['age'].tolist()

X_train = []
for i in tqdm(range(len(df))):
    X_train.append(cv2.imread(img_path))  # HERE is the PROBLEM

y_trains = { "gender_out": gender,"age_out": age,}

, когда я подгоняю данные, выдает ошибку

model.fit(X_train, y_trains, epochs=50,batch_size=128,validation_split=0.2)

Как загрузить данные в модель с помощью CV2.IMREAD (ИЛИ ЛЮБОГО ДРУГОГО МЕТОДА) В МОЕМ СЛУЧАЕ ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...