Python keras.backend.function() Examples
The following are 30
code examples of keras.backend.function().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
keras.backend
, or try the search function
.
Example #1
Source File: util.py From neural-fingerprinting with BSD 3-Clause "New" or "Revised" License | 8 votes |
def get_deep_representations(model, X, batch_size=256): """ TODO :param model: :param X: :param batch_size: :return: """ # last hidden layer is always at index -4 output_dim = model.layers[-4].output.shape[-1].value get_encoding = K.function( [model.layers[0].input, K.learning_phase()], [model.layers[-4].output] ) n_batches = int(np.ceil(X.shape[0] / float(batch_size))) output = np.zeros(shape=(len(X), output_dim)) for i in range(n_batches): output[i * batch_size:(i + 1) * batch_size] = \ get_encoding([X[i * batch_size:(i + 1) * batch_size], 0])[0] return output
Example #2
Source File: 7_visualize_filters.py From deep-learning-note with MIT License | 8 votes |
def generate_pattern(layer_name, filter_index, size=150): # 过滤器可视化函数 layer_output = model.get_layer(layer_name).output loss = K.mean(layer_output[:, :, :, filter_index]) grads = K.gradients(loss, model.input)[0] grads /= (K.sqrt(K.mean(K.square(grads))) + 1e-5) iterate = K.function([model.input], [loss, grads]) input_img_data = np.random.random((1, size, size, 3)) * 20 + 128. step = 1 for _ in range(40): loss_value, grads_value = iterate([input_img_data]) input_img_data += grads_value * step img = input_img_data[0] return deprocess_image(img)
Example #3
Source File: qrnn.py From typhon with MIT License | 6 votes |
def sample_posterior(self, x, n=1): r""" Generates :code:`n` samples from the estimated posterior distribution for the input vector :code:`x`. The sampling is performed by the inverse CDF method using the estimated CDF obtained from the :code:`cdf` member function. Arguments: x(np.array): Array of shape `(n, m)` containing `n` inputs for which to predict the conditional quantiles. n(int): The number of samples to generate. Returns: Tuple (xs, fs) containing the :math: `x`-values in `xs` and corresponding values of the posterior CDF :math: `F(x)` in `fs`. """ y_pred, qs = self.cdf(x) p = np.random.rand(n) y = np.interp(p, qs, y_pred) return y
Example #4
Source File: retinanet.py From nyoka with Apache License 2.0 | 6 votes |
def get_local_transformation(self): """ Generates Trasformation information for RetinaNet Returns ------- Nyoka's LocalTransformations object """ apply = pml.Apply( function='KerasRetinaNet:getBase64StringFromBufferedInput', FieldRef = [pml.FieldRef(field=self.input_format)], Constant = [pml.Constant(valueOf_='tf' if self.backbone_name in ['mobilenet', 'densenet'] else 'caffe')] ) der_fld = pml.DerivedField( name="base64String", optype="categorical", dataType="string", Apply = apply ) return pml.LocalTransformations(DerivedField = [der_fld])
Example #5
Source File: reversing_gan.py From gandlf with MIT License | 6 votes |
def reverse_generator(generator, X_sample, y_sample, title): """Gradient descent to map images back to their latent vectors.""" latent_vec = np.random.normal(size=(1, 100)) # Function for figuring out how to bump the input. target = K.placeholder() loss = K.sum(K.square(generator.outputs[0] - target)) grad = K.gradients(loss, generator.inputs[0])[0] update_fn = K.function(generator.inputs + [target], [grad]) # Repeatedly apply the update rule. xs = [] for i in range(60): print('%d: latent_vec mean=%f, std=%f' % (i, np.mean(latent_vec), np.std(latent_vec))) xs.append(generator.predict_on_batch([latent_vec, y_sample])) for _ in range(10): update_vec = update_fn([latent_vec, y_sample, X_sample])[0] latent_vec -= update_vec * update_rate # Plots the samples. xs = np.concatenate(xs, axis=0) plot_as_gif(xs, X_sample, title)
Example #6
Source File: feature_vis.py From facies_net with GNU Lesser General Public License v3.0 | 6 votes |
def smoothing(im, mode = None): # utility function to smooth an image if mode is None: return im elif mode == 'L2': # L2 norm return im / (np.sqrt(np.mean(np.square(im))) + K.epsilon()) elif mode == 'GaussianBlur': # Gaussian Blurring with width of 3 return filters.gaussian_filter(im,1/8) elif mode == 'Decay': # Decay regularization decay = 0.98 return decay * im elif mode == 'Clip_weak': # Clip weak pixel regularization percentile = 1 threshold = np.percentile(np.abs(im),percentile) im[np.where(np.abs(im) < threshold)] = 0 return im else: # print error message print('Unknown smoothing parameter. No smoothing implemented.') return im
Example #7
Source File: qrnn.py From typhon with MIT License | 6 votes |
def __init__(self, x_train, x_mean, x_sigma, y_train, sigma_noise, batch_size, input_gradients, eps): self.bs = batch_size self.x_train = x_train self.x_mean = x_mean self.x_sigma = x_sigma self.y_train = y_train self.sigma_noise = sigma_noise self.indices = np.random.permutation(x_train.shape[0]) self.i = 0 # compile gradient function bs2 = self.bs // 2 self.input_gradients = input_gradients self.eps = eps
Example #8
Source File: reinforce_agent.py From reinforcement-learning-kr with MIT License | 6 votes |
def optimizer(self): action = K.placeholder(shape=[None, 5]) discounted_rewards = K.placeholder(shape=[None, ]) # 크로스 엔트로피 오류함수 계산 action_prob = K.sum(action * self.model.output, axis=1) cross_entropy = K.log(action_prob) * discounted_rewards loss = -K.sum(cross_entropy) # 정책신경망을 업데이트하는 훈련함수 생성 optimizer = Adam(lr=self.learning_rate) updates = optimizer.get_updates(self.model.trainable_weights,[], loss) train = K.function([self.model.input, action, discounted_rewards], [], updates=updates) return train # 정책신경망으로 행동 선택
Example #9
Source File: breakout_dqn.py From reinforcement-learning with MIT License | 6 votes |
def optimizer(self): a = K.placeholder(shape=(None,), dtype='int32') y = K.placeholder(shape=(None,), dtype='float32') py_x = self.model.output a_one_hot = K.one_hot(a, self.action_size) q_value = K.sum(py_x * a_one_hot, axis=1) error = K.abs(y - q_value) quadratic_part = K.clip(error, 0.0, 1.0) linear_part = error - quadratic_part loss = K.mean(0.5 * K.square(quadratic_part) + linear_part) optimizer = RMSprop(lr=0.00025, epsilon=0.01) updates = optimizer.get_updates(self.model.trainable_weights, [], loss) train = K.function([self.model.input, a, y], [loss], updates=updates) return train # approximate Q function using Convolution Neural Network # state is input and Q Value of each action is output of network
Example #10
Source File: breakout_a3c.py From reinforcement-learning with MIT License | 6 votes |
def build_model(self): input = Input(shape=self.state_size) conv = Conv2D(16, (8, 8), strides=(4, 4), activation='relu')(input) conv = Conv2D(32, (4, 4), strides=(2, 2), activation='relu')(conv) conv = Flatten()(conv) fc = Dense(256, activation='relu')(conv) policy = Dense(self.action_size, activation='softmax')(fc) value = Dense(1, activation='linear')(fc) actor = Model(inputs=input, outputs=policy) critic = Model(inputs=input, outputs=value) actor._make_predict_function() critic._make_predict_function() actor.summary() critic.summary() return actor, critic # make loss function for Policy Gradient # [log(action probability) * advantages] will be input for the back prop # we add entropy of action probability to loss
Example #11
Source File: breakout_a3c.py From reinforcement-learning with MIT License | 6 votes |
def actor_optimizer(self): action = K.placeholder(shape=[None, self.action_size]) advantages = K.placeholder(shape=[None, ]) policy = self.actor.output good_prob = K.sum(action * policy, axis=1) eligibility = K.log(good_prob + 1e-10) * advantages actor_loss = -K.sum(eligibility) entropy = K.sum(policy * K.log(policy + 1e-10), axis=1) entropy = K.sum(entropy) loss = actor_loss + 0.01*entropy optimizer = RMSprop(lr=self.actor_lr, rho=0.99, epsilon=0.01) updates = optimizer.get_updates(self.actor.trainable_weights, [], loss) train = K.function([self.actor.input, action, advantages], [loss], updates=updates) return train # make loss function for Value approximation
Example #12
Source File: callbacks.py From keras_bn_library with MIT License | 6 votes |
def __init__(self, X_train, X_test, loss, verbose=1, batch_size = 1, label='loss', every_n_epochs=1, display_delta=True): super(UnsupervisedLoss2Logger, self).__init__() self.X_train = X_train self.X_test = X_test self.loss = loss self.verbose = verbose self.label = label self.every_n_epochs = every_n_epochs self.display_delta = display_delta self.prev_loss = None self.batch_size = batch_size input_train = K.placeholder(shape=self.X_train.shape) input_test = K.placeholder(shape=self.X_test.shape) loss = self.loss(input_train, input_test) ins = [input_train, input_test] self.loss_function = K.function(ins, loss)
Example #13
Source File: reinforce_agent.py From reinforcement-learning with MIT License | 6 votes |
def optimizer(self): action = K.placeholder(shape=[None, 5]) discounted_rewards = K.placeholder(shape=[None, ]) # Calculate cross entropy error function action_prob = K.sum(action * self.model.output, axis=1) cross_entropy = K.log(action_prob) * discounted_rewards loss = -K.sum(cross_entropy) # create training function optimizer = Adam(lr=self.learning_rate) updates = optimizer.get_updates(self.model.trainable_weights, [], loss) train = K.function([self.model.input, action, discounted_rewards], [], updates=updates) return train # get action from policy network
Example #14
Source File: cartpole_a3c.py From reinforcement-learning with MIT License | 6 votes |
def build_model(self): state = Input(batch_shape=(None, self.state_size)) shared = Dense(self.hidden1, input_dim=self.state_size, activation='relu', kernel_initializer='glorot_uniform')(state) actor_hidden = Dense(self.hidden2, activation='relu', kernel_initializer='glorot_uniform')(shared) action_prob = Dense(self.action_size, activation='softmax', kernel_initializer='glorot_uniform')(actor_hidden) value_hidden = Dense(self.hidden2, activation='relu', kernel_initializer='he_uniform')(shared) state_value = Dense(1, activation='linear', kernel_initializer='he_uniform')(value_hidden) actor = Model(inputs=state, outputs=action_prob) critic = Model(inputs=state, outputs=state_value) actor._make_predict_function() critic._make_predict_function() actor.summary() critic.summary() return actor, critic # make loss function for Policy Gradient # [log(action probability) * advantages] will be input for the back prop # we add entropy of action probability to loss
Example #15
Source File: cartpole_a3c.py From reinforcement-learning with MIT License | 6 votes |
def actor_optimizer(self): action = K.placeholder(shape=(None, self.action_size)) advantages = K.placeholder(shape=(None, )) policy = self.actor.output good_prob = K.sum(action * policy, axis=1) eligibility = K.log(good_prob + 1e-10) * K.stop_gradient(advantages) loss = -K.sum(eligibility) entropy = K.sum(policy * K.log(policy + 1e-10), axis=1) actor_loss = loss + 0.01*entropy optimizer = Adam(lr=self.actor_lr) updates = optimizer.get_updates(self.actor.trainable_weights, [], actor_loss) train = K.function([self.actor.input, action, advantages], [], updates=updates) return train # make loss function for Value approximation
Example #16
Source File: reinforce_agent.py From 2019-OSS-Summer-RL with MIT License | 6 votes |
def optimizer(self): action = K.placeholder(shape=[None, 5]) discounted_rewards = K.placeholder(shape=[None, ]) # 크로스 엔트로피 오류함수 계산 action_prob = K.sum(action * self.model.output, axis=1) cross_entropy = K.log(action_prob) * discounted_rewards loss = -K.sum(cross_entropy) # 정책신경망을 업데이트하는 훈련함수 생성 optimizer = Adam(lr=self.learning_rate) updates = optimizer.get_updates(self.model.trainable_weights,[], loss) train = K.function([self.model.input, action, discounted_rewards], [], updates=updates) return train # 정책신경망으로 행동 선택
Example #17
Source File: rationale_CNN.py From robotreviewer with GNU General Public License v3.0 | 5 votes |
def set_final_sentence_model(self): ''' allow convenient access to sentence-level predictions, after training ''' sent_prob_outputs = self.doc_model.get_layer("sentence_predictions") sent_model = K.function(inputs=self.doc_model.inputs + [K.learning_phase()], outputs=[sent_prob_outputs.output]) self.sentence_prob_model = sent_model
Example #18
Source File: model.py From segmentation-unet-maskrcnn with MIT License | 5 votes |
def call(self, inputs): def wrapper(rois, mrcnn_class, mrcnn_bbox, image_meta): detections_batch = [] for b in range(self.config.BATCH_SIZE): _, _, window, _ = parse_image_meta(image_meta) detections = refine_detections( rois[b], mrcnn_class[b], mrcnn_bbox[b], window[b], self.config) # Pad with zeros if detections < DETECTION_MAX_INSTANCES gap = self.config.DETECTION_MAX_INSTANCES - detections.shape[0] assert gap >= 0 if gap > 0: detections = np.pad( detections, [(0, gap), (0, 0)], 'constant', constant_values=0) detections_batch.append(detections) # Stack detections and cast to float32 # TODO: track where float64 is introduced detections_batch = np.array(detections_batch).astype(np.float32) # Reshape output # [batch, num_detections, (y1, x1, y2, x2, class_score)] in pixels return np.reshape(detections_batch, [self.config.BATCH_SIZE, self.config.DETECTION_MAX_INSTANCES, 6]) # Return wrapped function return tf.py_func(wrapper, inputs, tf.float32)
Example #19
Source File: model.py From segmentation-unet-maskrcnn with MIT License | 5 votes |
def load_weights(self, filepath, by_name=False, exclude=None): """Modified version of the correspoding Keras function with the addition of multi-GPU support and the ability to exclude some layers from loading. exlude: list of layer names to excluce """ import h5py from keras.engine import topology if exclude: by_name = True if h5py is None: raise ImportError('`load_weights` requires h5py.') f = h5py.File(filepath, mode='r') if 'layer_names' not in f.attrs and 'model_weights' in f: f = f['model_weights'] # In multi-GPU training, we wrap the model. Get layers # of the inner model because they have the weights. keras_model = self.keras_model layers = keras_model.inner_model.layers if hasattr(keras_model, "inner_model")\ else keras_model.layers # Exclude some layers if exclude: layers = filter(lambda l: l.name not in exclude, layers) if by_name: topology.load_weights_from_hdf5_group_by_name(f, layers) else: topology.load_weights_from_hdf5_group(f, layers) if hasattr(f, 'close'): f.close() # Update the log directory self.set_log_dir(filepath)
Example #20
Source File: model.py From segmentation-unet-maskrcnn with MIT License | 5 votes |
def compile(self, learning_rate, momentum): """Gets the model ready for training. Adds losses, regularization, and metrics. Then calls the Keras compile() function. """ # Optimizer object optimizer = keras.optimizers.SGD(lr=learning_rate, momentum=momentum, clipnorm=5.0) # Add Losses # First, clear previously set losses to avoid duplication self.keras_model._losses = [] self.keras_model._per_input_losses = {} loss_names = ["rpn_class_loss", "rpn_bbox_loss", "mrcnn_class_loss", "mrcnn_bbox_loss", "mrcnn_mask_loss"] for name in loss_names: layer = self.keras_model.get_layer(name) if layer.output in self.keras_model.losses: continue self.keras_model.add_loss( tf.reduce_mean(layer.output, keep_dims=True)) # Add L2 Regularization # Skip gamma and beta weights of batch normalization layers. reg_losses = [keras.regularizers.l2(self.config.WEIGHT_DECAY)(w) / tf.cast(tf.size(w), tf.float32) for w in self.keras_model.trainable_weights if 'gamma' not in w.name and 'beta' not in w.name] self.keras_model.add_loss(tf.add_n(reg_losses)) # Compile self.keras_model.compile(optimizer=optimizer, loss=[ None] * len(self.keras_model.outputs)) # Add metrics for losses for name in loss_names: if name in self.keras_model.metrics_names: continue layer = self.keras_model.get_layer(name) self.keras_model.metrics_names.append(name) self.keras_model.metrics_tensors.append(tf.reduce_mean( layer.output, keep_dims=True))
Example #21
Source File: grad_cam.py From Emotion with MIT License | 5 votes |
def compile_gradient_function(input_model, category_index, layer_name): model = Sequential() model.add(input_model) num_classes = model.output_shape[1] target_layer = lambda x: target_category_loss(x, category_index, num_classes) model.add(Lambda(target_layer, output_shape = target_category_loss_output_shape)) loss = K.sum(model.layers[-1].output) conv_output = model.layers[0].get_layer(layer_name).output gradients = normalize(K.gradients(loss, conv_output)[0]) gradient_function = K.function([model.layers[0].input, K.learning_phase()], [conv_output, gradients]) return gradient_function
Example #22
Source File: model.py From segmentation-unet-maskrcnn with MIT License | 5 votes |
def find_trainable_layer(self, layer): """If a layer is encapsulated by another layer, this function digs through the encapsulation and returns the layer that holds the weights. """ if layer.__class__.__name__ == 'TimeDistributed': return self.find_trainable_layer(layer.layer) return layer
Example #23
Source File: callbacks.py From keras-fcn with MIT License | 5 votes |
def on_batch_end(self, batch, logs=None): if self.validation_data and self.histogram_freq: if batch % self.histogram_freq == 0: for layer in self.model.layers: functor = K.function([self.model.input, K.learning_phase()], [layer.output]) layer_out = functor(self.validation_data) if np.any(np.isnan(layer_out)) or np.any(np.isinf(layer_out)): print('The output of {} becomes nan'.format(layer.name)) self.model.stop_training = True
Example #24
Source File: grad_cam.py From Emotion with MIT License | 5 votes |
def compile_saliency_function(model, activation_layer='conv2d_7'): input_image = model.input layer_output = model.get_layer(activation_layer).output max_output = K.max(layer_output, axis=3) saliency = K.gradients(K.sum(max_output), input_image)[0] return K.function([input_image, K.learning_phase()], [saliency])
Example #25
Source File: grad_cam.py From Emotion with MIT License | 5 votes |
def normalize(x): # utility function to normalize a tensor by its L2 norm return x / (K.sqrt(K.mean(K.square(x))) + 1e-5)
Example #26
Source File: cartpole_a2c.py From 2019-OSS-Summer-RL with MIT License | 5 votes |
def critic_optimizer(self): target = K.placeholder(shape=[None, ]) loss = K.mean(K.square(target - self.critic.output)) optimizer = Adam(lr=self.critic_lr) updates = optimizer.get_updates(self.critic.trainable_weights, [], loss) train = K.function([self.critic.input, target], [], updates=updates) return train # 각 타임스텝마다 정책신경망과 가치신경망을 업데이트
Example #27
Source File: cartpole_a2c.py From 2019-OSS-Summer-RL with MIT License | 5 votes |
def actor_optimizer(self): action = K.placeholder(shape=[None, self.action_size]) advantage = K.placeholder(shape=[None, ]) action_prob = K.sum(action * self.actor.output, axis=1) cross_entropy = K.log(action_prob) * advantage loss = -K.sum(cross_entropy) optimizer = Adam(lr=self.actor_lr) updates = optimizer.get_updates(self.actor.trainable_weights, [], loss) train = K.function([self.actor.input, action, advantage], [], updates=updates) return train # 가치신경망을 업데이트하는 함수
Example #28
Source File: util.py From neural-fingerprinting with BSD 3-Clause "New" or "Revised" License | 5 votes |
def get_mc_predictions(model, X, nb_iter=50, batch_size=256): """ TODO :param model: :param X: :param nb_iter: :param batch_size: :return: """ output_dim = model.layers[-1].output.shape[-1].value get_output = K.function( [model.layers[0].input, K.learning_phase()], [model.layers[-1].output] ) def predict(): n_batches = int(np.ceil(X.shape[0] / float(batch_size))) output = np.zeros(shape=(len(X), output_dim)) for i in range(n_batches): output[i * batch_size:(i + 1) * batch_size] = \ get_output([X[i * batch_size:(i + 1) * batch_size], 1])[0] return output preds_mc = [] for i in tqdm(range(nb_iter)): preds_mc.append(predict()) return np.asarray(preds_mc)
Example #29
Source File: model.py From PanopticSegmentation with MIT License | 5 votes |
def find_trainable_layer(self, layer): """If a layer is encapsulated by another layer, this function digs through the encapsulation and returns the layer that holds the weights. """ if layer.__class__.__name__ == 'TimeDistributed': return self.find_trainable_layer(layer.layer) return layer
Example #30
Source File: test_gradAsc_MaxSoftmax.py From Automatic-Modulation-Classification with GNU General Public License v3.0 | 5 votes |
def build_backprop(model, loss): # Gradient of the input image with respect to the loss function gradients = K.gradients(loss, model.input)[0] # Normalize the gradients gradients /= (K.sqrt(K.mean(K.square(gradients))) + 1e-5) # Keras function to calculate the gradients and loss return K.function([model.input], [loss, gradients]) # Loss function that optimizes one class