#!/usr/bin/env python # coding: utf-8 # In[1]: get_ipython().run_line_magic('reload_ext', 'autoreload') get_ipython().run_line_magic('autoreload', '2') get_ipython().run_line_magic('matplotlib', 'inline') import os os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"; os.environ["CUDA_VISIBLE_DEVICES"]="0" import ktrain from ktrain import vision as vis # In[2]: get_ipython().system('wget --no-check-certificate https://storage.googleapis.com/mledu-datasets/cats_and_dogs_filtered.zip -O /tmp/cats_and_dogs_filtered.zip') # In[3]: import os import zipfile local_zip = '/tmp/cats_and_dogs_filtered.zip' zip_ref = zipfile.ZipFile(local_zip, 'r') zip_ref.extractall('/tmp') zip_ref.close() # In[4]: (trn, val, preproc) = vis.images_from_folder( datadir='/tmp/cats_and_dogs_filtered', data_aug = vis.get_data_aug(horizontal_flip=True), train_test_names=['train', 'validation']) # In[5]: model = vis.image_classifier('pretrained_mobilenet', trn, val, freeze_layers=15) learner = ktrain.get_learner(model=model, train_data=trn, val_data=val, workers=8, use_multiprocessing=False, batch_size=64) # In[6]: learner.lr_find(max_epochs=3, show_plot=True) # In[7]: learner.fit_onecycle(1e-4, 4) # In[8]: learner.validate(class_names=preproc.get_classes()) # In[9]: p = ktrain.get_predictor(learner.model, preproc) # In[10]: p.predict_filename('/tmp/cats_and_dogs_filtered/validation/cats/cat.2001.jpg') # In[11]: p.predict_filename('/tmp/cats_and_dogs_filtered/validation/cats/cat.2001.jpg', return_proba=True) # In[12]: p.preproc.get_classes() # In[13]: p.save('/tmp/mycatsdogs') # In[14]: p = ktrain.load_predictor('/tmp/mycatsdogs') # In[15]: p.predict_filename('/tmp/cats_and_dogs_filtered/validation/dogs/dog.2001.jpg') # In[16]: vis.show_image('/tmp/cats_and_dogs_filtered/validation/dogs/dog.2001.jpg') # In[ ]: