Skip to content

Instantly share code, notes, and snippets.

View emuccino's full-sized avatar

Eric Muccino emuccino

  • Mindboard
View GitHub Profile
@emuccino
emuccino / active_learning_mnist.py
Last active September 7, 2021 10:42
Active Learning for Fast Data Set Labeling
import numpy as np
from numpy.random import choice, normal
np.random.seed(8)
from tensorflow import set_random_seed
set_random_seed(8)
from tensorflow.python.keras.layers import Input, BatchNormalization,Conv2D, MaxPooling2D
from tensorflow.python.keras.layers import Dropout, Reshape
from tensorflow.python.keras.layers import Dense, Flatten
from tensorflow.python.keras.models import Model
@emuccino
emuccino / long_sequences.py
Created July 11, 2019 16:43
Training Recurrent Neural Networks on Long Sequences
import numpy as np
#function for getting coordinates given an angle
def get_cartesian_coords(nums):
theta = nums
x = np.cos(theta)
y = np.sin(theta)
return [x,y]
#generate random starting coordinate
angle = np.random.uniform(-np.pi, np.pi)
coordinates = get_cartesian_coords(random_angle)
@emuccino
emuccino / adversarial_example.py
Created August 14, 2019 02:26
Generating Adversarial Samples in Keras
import keras
from keras.datasets import mnist
from keras.models import Sequential, Model
from keras.layers import Dense, Dropout, Flatten ,Input
from keras.layers import Conv2D, MaxPooling2D, Reshape, Add
from keras.metrics import categorical_accuracy
from keras.regularizers import l1_l2, l2, l1
from keras.callbacks import EarlyStopping, ModelCheckpoint
from keras.layers import Activation
from keras.utils.generic_utils import get_custom_objects
@emuccino
emuccino / mnist_classifier.py
Last active August 14, 2019 17:03
mnist_classifier
import keras
from keras.datasets import mnist
from keras.models import Model
from keras.layers import Dense, Dropout, Flatten ,Input
from keras.layers import Conv2D, MaxPooling2D, Reshape, Add
from keras.metrics import categorical_accuracy
from keras.regularizers import l1_l2, l2, l1
from keras.callbacks import EarlyStopping, ModelCheckpoint
from keras.layers import Activation
from keras.utils.generic_utils import get_custom_objects
@emuccino
emuccino / select_image.py
Created August 14, 2019 16:03
select_image
#select image to create an adversarial example from
img = x_train[0:1]
plt.imshow(img.reshape((28,28)),vmin=0., vmax=1.)
plt.show()
#varify accurate classificaiton
prediction = mnist_model.predict(img)[0]
print(prediction)
#applying random noise does not fool the classifier
quantized_noise = np.round(np.random.normal(loc=0.0, scale=0.3, size=img.shape) * 255.) / 255.
@emuccino
emuccino / generate_adversaries.py
Last active May 24, 2022 13:22
generate_adversaries
#custom activation function for keeping adversarial pixel values between 0.0 and 1.0
def clip(x):
return K.clip(x, 0.0, 1.0)
#custom loss funciton for non-targeted misclassification
def negative_categorical_crossentropy(yTrue,yPred):
return 0.0 - K.categorical_crossentropy(yTrue,yPred)
#add custom objects to dictionary
get_custom_objects().update({'clip': Activation(clip)})
@emuccino
emuccino / DeepDream.py
Created September 10, 2019 18:38
DeepDream
from keras.models import Model
from keras.layers import Dense, Input, Reshape
from keras.regularizers import Regularizer
from keras.utils.generic_utils import get_custom_objects
from keras import backend as K
from keras.applications.inception_v3 import InceptionV3
from keras.initializers import RandomUniform
from keras.preprocessing.image import array_to_img, save_img
import numpy as np
#imports
import tensorflow as tf
from tensorflow.keras.applications.mobilenet_v2 import MobileNetV2,preprocess_input
from tensorflow.keras.layers import Input,GlobalMaxPooling2D,Dense
from tensorflow.keras.models import Model
from tensorflow.keras.preprocessing.image import img_to_array,load_img
import numpy as np
#set up MobileNet GlobalMaxPooling and unsepcified input resolution
inputs = Input(shape=(None,None,3))
net = MobileNetV2(include_top=False, alpha=0.35, weights='imagenet', input_tensor=inputs, classes=n_classes)
net = GlobalMaxPooling2D()(net.output)
outputs = Dense(n_classes,activation='softmax')(net)
model = Model(inputs=inputs,outputs=outputs)
model.compile(optimizer='Adam', loss='sparse_categorical_crossentropy',metrics=['sparse_categorical_accuracy'])
#data generator class; yields batches of data for training/testing
class ImageGenerator():
def __init__(self, directory, batch_size=16, shuffle=False, max_dimension=None):
self.directories = directory
self.batch_size = batch_size
self.shuffle = shuffle
self.max_dimension = max_dimension