Spaces:
Sleeping
Sleeping
| # Written by Dr Daniel Buscombe, Marda Science LLC | |
| # for the SandSnap Program | |
| # | |
| # MIT License | |
| # | |
| # Copyright (c) 2020-2021, Marda Science LLC | |
| # | |
| # Permission is hereby granted, free of charge, to any person obtaining a copy | |
| # of this software and associated documentation files (the "Software"), to deal | |
| # in the Software without restriction, including without limitation the rights | |
| # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| # copies of the Software, and to permit persons to whom the Software is | |
| # furnished to do so, subject to the following conditions: | |
| # | |
| # The above copyright notice and this permission notice shall be included in all | |
| # copies or substantial portions of the Software. | |
| # | |
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
| # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
| # SOFTWARE. | |
| ##> Release v1.4 (Aug 2021) | |
| ###=================================================== | |
| # import libraries | |
| import gc, os, sys, shutil | |
| ###=================================================== | |
| # import and set global variables from defaults.py | |
| from defaults import * | |
| global IM_HEIGHT, IM_WIDTH | |
| global NUM_EPOCHS, SHALLOW | |
| global VALID_BATCH_SIZE, BATCH_SIZE | |
| VALID_BATCH_SIZE = BATCH_SIZE | |
| global MAX_LR, OPT, USE_GPU, DO_AUG, DO_STANDARDIZE | |
| # global STOP_PATIENCE, FACTOR, MIN_DELTA, MIN_LR | |
| # global MIN_DELTA, FACTOR, STOP_PATIENCE | |
| ##==================================================== | |
| # import tensorflow.compat.v1 as tf1 | |
| # config = tf1.ConfigProto() | |
| # config.gpu_options.allow_growth = True # dynamically grow the memory used on the GPU | |
| # config.log_device_placement = True # to log device placement (on which device the operation ran) | |
| # sess = tf1.Session(config=config) | |
| # tf1.keras.backend.set_session(sess) | |
| # PREDICT = False | |
| # | |
| # ##OS | |
| # if PREDICT == True: | |
| # os.environ['CUDA_VISIBLE_DEVICES'] = '-1' | |
| ##TF/keras | |
| if USE_GPU == True: | |
| ##use the first available GPU | |
| os.environ['CUDA_VISIBLE_DEVICES'] = '0' | |
| else: | |
| ## to use the CPU (not recommended): | |
| os.environ['CUDA_VISIBLE_DEVICES'] = '-1' | |
| import numpy as np | |
| import tensorflow as tf | |
| # from tensorflow.keras import mixed_precision | |
| # mixed_precision.set_global_policy('mixed_float16') | |
| SEED=42 | |
| np.random.seed(SEED) | |
| AUTO = tf.data.experimental.AUTOTUNE # used in tf.data.Dataset API | |
| tf.random.set_seed(SEED) | |
| print("Version: ", tf.__version__) | |
| print("Eager mode: ", tf.executing_eagerly()) | |
| print('GPU name: ', tf.config.experimental.list_physical_devices('GPU')) | |
| print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU'))) | |
| from tensorflow.keras.layers import Input, Dense, MaxPool2D, GlobalMaxPool2D | |
| from tensorflow.keras.layers import Dropout, MaxPooling2D, GlobalAveragePooling2D | |
| from tensorflow.keras.models import Model, Sequential | |
| from tensorflow.keras.callbacks import ModelCheckpoint, EarlyStopping, ReduceLROnPlateau, LearningRateScheduler | |
| from tensorflow.keras.layers import DepthwiseConv2D, Conv2D, SeparableConv2D | |
| from tensorflow.keras.layers import BatchNormalization, Activation, concatenate | |
| try: | |
| from tensorflow.keras.utils import plot_model | |
| except: | |
| pass | |
| import tensorflow.keras.backend as K | |
| from tensorflow.keras.utils import to_categorical | |
| import tensorflow_addons as tfa | |
| ##SKLEARN | |
| from sklearn.preprocessing import RobustScaler #MinMaxScaler | |
| from sklearn.metrics import confusion_matrix, classification_report | |
| ##OTHER | |
| from PIL import Image | |
| from glob import glob | |
| import matplotlib.pyplot as plt | |
| import pandas as pd | |
| import itertools | |
| import joblib | |
| import random | |
| from tempfile import TemporaryFile | |
| import tensorflow_addons as tfa | |
| import tqdm | |
| from skimage.transform import AffineTransform, warp #rotate, | |