Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 深度学习模型的验证精度停留在0.5,而训练精度正在提高_Python_Tensorflow_Deep Learning_Tensorflow2.0 - Fatal编程技术网

Python 深度学习模型的验证精度停留在0.5,而训练精度正在提高

Python 深度学习模型的验证精度停留在0.5,而训练精度正在提高,python,tensorflow,deep-learning,tensorflow2.0,Python,Tensorflow,Deep Learning,Tensorflow2.0,我的TF深度学习模型的验证准确率为50%,而我的训练准确率为65%,并且还在不断提高。以下是需要注意的几点- 问题陈述-我使用(224*224)张脸作为输入,并试图预测性别 数据大小-我有29999张男性和女性的图片。培训数据为80%-47998,验证数据为20%-11999 下面是我的代码。这可能有点让人不知所措,请随意问我一些具体的问题- def generator(positive_dataset, negative_dataset): while True: for pos_re

我的TF深度学习模型的验证准确率为50%,而我的训练准确率为65%,并且还在不断提高。以下是需要注意的几点-

  • 问题陈述-我使用(224*224)张脸作为输入,并试图预测性别
  • 数据大小-我有29999张男性和女性的图片。培训数据为80%-47998,验证数据为20%-11999
  • 下面是我的代码。这可能有点让人不知所措,请随意问我一些具体的问题-

    def generator(positive_dataset, negative_dataset):
    while True:
        for pos_rec, neg_rec in zip(positive_dataset, negative_dataset):
              pos_x, pos_y = pos_rec
              neg_x, neg_y = neg_rec
              x = tf.concat([pos_x, neg_x], axis=0)
              y = tf.concat([pos_y, neg_y], axis=0)
              yield x, y
    train_generator = generator(train_dataset_female, train_dataset_male) 
    test_generator = generator(test_dataset_female, test_dataset_male)
    input_layer = layers.Input(shape=(IMG_SIZE, IMG_SIZE, 3))
    mobilenet_layer = MobileNetV2(weights=None, include_top=False, alpha=0.35)(input_layer)
    landmarks_layer = layers.GlobalAveragePooling2D()(mobilenet_layer)
    landmarks_layer = layers.Flatten()(landmarks_layer)
    landmarks_layer_flat = layers.Dense(68 * 2, activation='sigmoid', name='landmarks_flat')(landmarks_layer)
    landmarks_layer = layers.Reshape(target_shape=(68, 2), name='landmarks')(landmarks_layer_flat)
    
    landmarks_model = tf.keras.models.Model(inputs=input_layer, outputs=landmarks_layer)
    
    prob_face_layer = layers.GlobalAveragePooling2D()(mobilenet_layer)
    prob_face_layer = layers.Flatten()(prob_face_layer)
    prob_face_layer = layers.concatenate([prob_face_layer, landmarks_layer_flat])
    prob_face_layer = layers.Dense(256, activation='relu')(prob_face_layer)
    prob_face_layer = layers.Dense(1, activation='sigmoid')(prob_face_layer)
    
    prob_face_net = tf.keras.models.Model(inputs=input_layer, outputs=prob_face_layer)
    print('Prob Face Net')
    print(prob_face_net.summary())
    
    print('Pose Model')
    pose_model.summary()
    
    print('Landmarks Model')
    landmarks_model.summary()
    
    combined_model = tf.keras.models.Model(inputs=input_layer,outputs[landmarks_layer, pose_layer])
    print('Combined Model')
    combined_model.summary()
    
    full_model = tf.keras.models.Model(inputs=input_layer, outputs=[prob_face_layer, landmarks_layer, pose_layer])
    print('Full Net')
    print(full_model.summary())
    
    
    combined_model.load_weights('/mnt/sachins/apprach2/models/bounding_box_based_model_faster_2.h5')
    for layer in range(0, 8):
        prob_face_net.layers[layer].trainable = False 
    prob_face_net.compile(loss='binary_crossentropy', optimizer='adam', metrics=[ 'accuracy'])
    
    
    history = prob_face_net.fit_generator(
                train_generator,
                epochs=EPOCHS,
                steps_per_epoch=(num_train_imgs_male+ num_train_imgs_female)//(BATCH_SIZE//2),
                validation_data=test_generator,
                validation_steps=(29999*2 - (num_train_imgs_male+num_train_imgs_female))//(BATCH_SIZE//2),
                callbacks=callbacks,
                verbose = 1)
    

  • 您应该考虑您的模型的道德问题

    你应该考虑一下你的模型的道德问题

    嘿,谢谢你指出这一点。只是想澄清一下,我把这当作练习题来做。很高兴能在我面临的问题上得到你的帮助。嘿,谢谢你指出这一点。只是想澄清一下,我把这当作练习题来做。如果能在我面临的问题上得到你的帮助,我会很高兴的。