GoogleCloudPlatform / tensorflow-without-a-phd

A crash course in six episodes for software developers who want to become machine learning practitioners.
Apache License 2.0
2.79k stars 911 forks source link

unable to train VGG16 #28

Open efferre99 opened 6 years ago

efferre99 commented 6 years ago

train_path='train' valid_path='valid' test_path='test'

batches for train, valid and test set

train_batches=ImageDataGenerator(rescale = 1./255).flow_from_directory(train_path,target_size=(224,224),classes= ['dog','cat'], batch_size=10) valid_batches=ImageDataGenerator(rescale = 1./255).flow_from_directory(valid_path,target_size=(224,224),classes= ['dog','cat'], batch_size=10) test_batches=ImageDataGenerator(rescale = 1./255).flow_from_directory(test_path,target_size=(224,224),classes= ['dog','cat'], batch_size=10)

build CNN

input_shape = (224, 224, 3)

model=Sequential() model.add(Conv2D(64, (3, 3), input_shape=(224,224,3), activation='relu',padding='same')) model.add(Conv2D(64, (3, 3),activation='relu',padding='same')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Conv2D(128, (3, 3),activation='relu',padding='same')) model.add(Conv2D(128, (3, 3),activation='relu',padding='same')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Conv2D(256, (3, 3),activation='relu',padding='same')) model.add(Conv2D(256, (3, 3),activation='relu',padding='same')) model.add(Conv2D(256, (3, 3),activation='relu',padding='same')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Conv2D(512, (3, 3),activation='relu',padding='same')) model.add(Conv2D(512, (3, 3),activation='relu',padding='same')) model.add(Conv2D(512, (3, 3),activation='relu',padding='same')) model.add(Flatten()) model.add(Dense(4096, activation='relu')) model.add(Dense(4096, activation='relu'))

model.add(Dense(2,activation='softmax')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics= ['accuracy'])

model.fit_generator(train_batches,steps_per_epoch=3,validation_data=valid_batches,validation_steps=3, epochs=5,verbose=2) The code above is VGG16 model that classifies cats and dogs, but when I train the network I still get accuracy 0.5, why?

106s - loss: 3.9315 - acc: 0.4333 - val_loss: 8.0151 - val_acc: 0.5000 I've already used the pretrained model and it worked, but now it doesn't work

martin-gorner commented 6 years ago

This collection of samples does not contain a sample of VGG16. Could you please add more information about the piece of code you are commenting on ? Thanks