0 votes

Hey there. 

 I want to train a model that given an image can predict the gender and eye color (Green/Blue) of the subject. So i have database full of 224x224 face photographs. They were extracted using MTCNN from online photographs. These photos are categorized to Blue-eyed Males, Blue-eyed Females, Green-eyed Males and Green-eyed Females. I have split the images 70/30 for Train/Test. Since i don't want to train the entire network from zero, i want to use VGGface

Here's my preprocessing code: 

from keras.preprocessing.image import img_to_array, load_img
def preprocess_image(image_file):
    img = load_img(image_file,target_size=(224, 224, 3))
    array = img_to_array(img)
    array /= 255
    return array

 


Here's my architecture code: 

from keras.layers import Input, Dense, Flatten
from keras.models import Model
import os
import dataiku
from keras_vggface.vggface import VGGFace
from keras_vggface import utils

def build_model(input_shapes, n_classes=None):
    image_shape = (224, 224, 3)
    image_input_name = "path_preprocessed"
    image_input = Input(shape=image_shape, name=image_input_name)
    base_model = VGGFace(model='resnet50', include_top=False, weights=None, input_tensor=image_input)
    folder = dataiku.Folder("VGG_model")
    weights_path = "rcmalli_vggface_tf_notop_resnet50.h5"
    base_model.load_weights(os.path.join(folder.get_path(), weights_path), by_name=True)
    x = base_model.layers[-1].output
    x = Flatten()(x)
    predictions = Dense(n_classes, activation="softmax")(x)
    model = Model(input=base_model.input, output=predictions)
    return model

def compile_model(model):
    model.compile(
        optimizer="adam",
        loss="categorical_crossentropy"
    )
    return model

 

 

So 2 questions here.

1) Should i add this snippet to architecture? Why/Why not?

 

for layer in base_model.layers:
    layer.trainable = False

 

2) Does this look OK?

base_model = VGGFace(model='resnet50', include_top=False, weights=None, input_tensor=image_input)



Thanks in advance and any input is welcome! laugh

by
edited by

1 Answer

0 votes
Hi,

Just to clarify, do you currently have an issue ? :)
by
Oh no, code runs OK. I was just asking for input to improve the model. Thanks Clement :)
1,278 questions
1,305 answers
1,486 comments
11,834 users

©Dataiku 2012-2018 - Privacy Policy