patience=100) csv_logger = CSVLogger('output/{}_fcn_vgg16.csv'.format( datetime.datetime.now().isoformat())) datagen = PascalVocGenerator(**init_args['pascal_voc_generator']['train']) train_loader = ImageSetLoader(**init_args['image_set_loader']['train']) val_loader = ImageSetLoader(**init_args['image_set_loader']['val']) fcn_vgg16 = FCN(basenet='vgg16', input_shape=(500, 500, 3), num_output=21) fcn_vgg16.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy', 'categorical_accuracy']) flow_args = init_args['pascal_voc_generator']['flow_from_imageset'] train_flow_args = flow_args.copy() train_flow_args['image_set_loader'] = train_loader val_flow_args = flow_args.copy() val_flow_args['image_set_loader'] = val_loader fcn_vgg16.fit_generator( datagen.flow_from_imageset(**train_flow_args), steps_per_epoch=1112, epochs=100, validation_data=datagen.flow_from_imageset(**val_flow_args), validation_steps=1111, verbose=1, max_q_size=100, callbacks=[lr_reducer, early_stopper, csv_logger]) fcn_vgg16.save('output/fcn_vgg16.h5')
from fcn import FCN # set PATH to location of Pacal VOC dataset PATH = '/home/seth/Datasets/VOCtrainval_11-May-2012/VOCdevkit/VOC2012/' fcn = FCN(path=PATH) #fcn.load('my_model') fcn.train(epochs=75) fcn.save('my_model') fcn.evaluate(val=False) fcn.evaluate() for id in fcn.train_list[:10]: fcn.data.show_seg(id) fcn.predict(id) for id in fcn.val_list[:10]: fcn.data.show_seg(id) fcn.predict(id)