Python keras.backend.reshape() Examples
The following are 30
code examples of keras.backend.reshape().
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: timedistributed.py From fancy-cnn with MIT License | 7 votes |
def get_output(self, train=False): def format_shape(shape): if K._BACKEND == 'tensorflow': def trf(x): try: return int(x) except TypeError: return x return map(trf, shape) return shape X = self.get_input(train) in_shape = format_shape(K.shape(X)) batch_flatten_len = K.prod(in_shape[:2]) cast_in_shape = (batch_flatten_len, ) + tuple(in_shape[i] for i in range(2, K.ndim(X))) pre_outs = self.layer(K.reshape(X, cast_in_shape)) out_shape = format_shape(K.shape(pre_outs)) cast_out_shape = (in_shape[0], in_shape[1]) + tuple(out_shape[i] for i in range(1, K.ndim(pre_outs))) outputs = K.reshape(pre_outs, cast_out_shape) return outputs
Example #2
Source File: contrib.py From steppy-toolkit with MIT License | 6 votes |
def call(self, x, mask=None): # computes a probability distribution over the timesteps # uses 'max trick' for numerical stability # reshape is done to avoid issue with Tensorflow # and 1-dimensional weights logits = K.dot(x, self.W) x_shape = K.shape(x) logits = K.reshape(logits, (x_shape[0], x_shape[1])) ai = K.exp(logits - K.max(logits, axis=-1, keepdims=True)) # masked timesteps have zero weight if mask is not None: mask = K.cast(mask, K.floatx()) ai = ai * mask att_weights = ai / (K.sum(ai, axis=1, keepdims=True) + K.epsilon()) weighted_input = x * K.expand_dims(att_weights) result = K.sum(weighted_input, axis=1) if self.return_attention: return [result, att_weights] return result
Example #3
Source File: layers.py From DeepLearn with MIT License | 6 votes |
def call(self , x, mask=None): e1=x[0].T e2=x[1].T batch_size = K.shape(x[0])[0] sim = [] V_out = K.dot(self.V, K.concatenate([e1,e2],axis=0)) for i in range(self.k): temp = K.batch_dot(K.dot(e1.T,self.W[i,:,:]),e2.T,axes=1) sim.append(temp) sim=K.reshape(sim,(self.k,batch_size)) tensor_bi_product = self.activation(V_out+sim) tensor_bi_product = K.dot(self.U.T, tensor_bi_product).T return tensor_bi_product
Example #4
Source File: rbm.py From keras_bn_library with MIT License | 6 votes |
def contrastive_divergence_loss(self, y_true, y_pred): x = y_pred #x = K.reshape(x, (-1, self.input_dim)) if(self.is_persistent): chain_start = self.persistent_chain else: chain_start = x def loss(chain_start, x): x_rec, _, _ = self.mcmc_chain(chain_start, self.nb_gibbs_steps) cd = K.mean(self.free_energy(x)) - K.mean(self.free_energy(x_rec)) return cd, x_rec y, x_rec = loss(chain_start, x) if(self.is_persistent): self.updates = [(self.persistent_chain, x_rec)] return y
Example #5
Source File: recurrent.py From keras_bn_library with MIT License | 6 votes |
def get_constants(self, x): constants = [] if 0 < self.dropout_U < 1: ones = K.ones_like(K.reshape(x[:, 0, 0], (-1, 1))) ones = K.tile(ones, (1, self.input_dim)) B_U = [K.in_train_phase(K.dropout(ones, self.dropout_U), ones) for _ in range(4)] constants.append(B_U) else: constants.append([K.cast_to_floatx(1.) for _ in range(4)]) if 0 < self.dropout_W < 1: input_shape = K.int_shape(x) input_dim = input_shape[-1] ones = K.ones_like(K.reshape(x[:, 0, 0], (-1, 1))) ones = K.tile(ones, (1, int(input_dim))) B_W = [K.in_train_phase(K.dropout(ones, self.dropout_W), ones) for _ in range(4)] constants.append(B_W) else: constants.append([K.cast_to_floatx(1.) for _ in range(4)]) return constants
Example #6
Source File: rnnrbm.py From keras_bn_library with MIT License | 6 votes |
def get_constants(self, x): constants = [] if 0 < self.dropout_U < 1: ones = K.ones_like(K.reshape(x[:, 0, 0], (-1, 1))) ones = K.tile(ones, (1, self.hidden_recurrent_dim)) B_U = K.in_train_phase(K.dropout(ones, self.dropout_U), ones) constants.append(B_U) else: constants.append(K.cast_to_floatx(1.)) if self.consume_less == 'cpu' and 0 < self.dropout_W < 1: input_shape = self.input_spec[0].shape input_dim = input_shape[-1] ones = K.ones_like(K.reshape(x[:, 0, 0], (-1, 1))) ones = K.tile(ones, (1, input_dim)) B_W = K.in_train_phase(K.dropout(ones, self.dropout_W), ones) constants.append(B_W) else: constants.append(K.cast_to_floatx(1.)) return constants
Example #7
Source File: transform_rnn.py From View-Adaptive-Neural-Networks-for-Skeleton-based-Human-Action-Recognition with MIT License | 6 votes |
def call(self,x,training=None): deta1 = 0.3 deta2 = 0.3 deta3 = 0.3 seed = np.random.randint(1, 10e6) rng = RandomStreams(seed=seed) theta1 = rng.uniform(size=(x.shape[0],1),low=-deta1,high=deta1,dtype='float32') theta2 = rng.uniform(size=(x.shape[0],1),low=-deta2,high=deta2,dtype='float32') theta3 = rng.uniform(size=(x.shape[0],1),low=-deta3,high=deta3,dtype='float32') theta = K.concatenate([theta1,theta2,theta3],axis=-1) theta = K.tile(theta,x.shape[1]) theta = theta.reshape((x.shape[0], x.shape[1], 3)) theta = theta.reshape((theta.shape[0]*theta.shape[1], theta.shape[2])) M = _fusion(theta) output = _transform_rot(M, x) return K.in_train_phase(output,x,training = training)
Example #8
Source File: fft.py From deep_complex_networks with MIT License | 6 votes |
def ifft2(x): ff = x ff = KB.permute_dimensions(ff, (0, 2, 1)) ff = KB.reshape(ff, (x.shape[0] *x.shape[2], x.shape[1])) tf = ifft(ff) tf = KB.reshape(tf, (x.shape[0], x.shape[2], x.shape[1])) tf = KB.permute_dimensions(tf, (0, 2, 1)) tf = KB.reshape(tf, (x.shape[0] *x.shape[1], x.shape[2])) tt = ifft(tf) tt = KB.reshape(tt, (x.shape[0], x.shape[1], x.shape[2])) return tt # # FFT Layers: # # FFT: Batched 1-D FFT (Input: (Batch, FeatureMaps, TimeSamples)) # IFFT: Batched 1-D IFFT (Input: (Batch, FeatureMaps, FreqSamples)) # FFT2: Batched 2-D FFT (Input: (Batch, FeatureMaps, TimeSamplesH, TimeSamplesW)) # IFFT2: Batched 2-D IFFT (Input: (Batch, FeatureMaps, FreqSamplesH, FreqSamplesW)) #
Example #9
Source File: transform_rnn.py From View-Adaptive-Neural-Networks-for-Skeleton-based-Human-Action-Recognition with MIT License | 6 votes |
def call(self,x,mask=None): conv_input,theta = x s = theta.shape theta = T.reshape(theta,[-1,s[2]]) m = K.not_equal(conv_input,0.) #### For translation trans = _trans(theta) output = _transform_trans(trans, conv_input) output = output * K.cast(m,K.floatx()) ### For rotation M = _fusion(theta) output = _transform_rot(M,output) return output
Example #10
Source File: fft.py From deep_complex_networks with MIT License | 6 votes |
def call(self, x, mask=None): a = KB.permute_dimensions(x, (1,0,2,3)) a = KB.reshape(a, (x.shape[1] *x.shape[0], x.shape[2], x.shape[3])) a = ifft2(a) a = KB.reshape(a, (x.shape[1], x.shape[0], x.shape[2], x.shape[3])) return KB.permute_dimensions(a, (1,0,2,3)) # # Tests # # Note: The IFFT is the conjugate of the FFT of the conjugate. # # np.fft.ifft(x) == np.conj(np.fft.fft(np.conj(x))) #
Example #11
Source File: layer_normalization.py From keras-utility-layer-collection with MIT License | 6 votes |
def call(self, x): mean = K.mean(x, axis=-1) std = K.std(x, axis=-1) if len(x.shape) == 3: mean = K.permute_dimensions( K.repeat(mean, x.shape.as_list()[-1]), [0,2,1] ) std = K.permute_dimensions( K.repeat(std, x.shape.as_list()[-1]), [0,2,1] ) elif len(x.shape) == 2: mean = K.reshape( K.repeat_elements(mean, x.shape.as_list()[-1], 0), (-1, x.shape.as_list()[-1]) ) std = K.reshape( K.repeat_elements(mean, x.shape.as_list()[-1], 0), (-1, x.shape.as_list()[-1]) ) return self._g * (x - mean) / (std + self._epsilon) + self._b
Example #12
Source File: customlayers.py From deep-mil-for-whole-mammogram-classification with MIT License | 5 votes |
def call(self, x,mask=None): response = K.max(x, axis=-1, keepdims=True) #K.reshape(x, (-1,1)) return K.concatenate([1-response, response], axis=self.axis) #e = K.exp(x - K.max(x, axis=self.axis, keepdims=True)) #s = K.sum(e, axis=self.axis, keepdims=True) #return e / s
Example #13
Source File: norm.py From deep_complex_networks with MIT License | 5 votes |
def layernorm(x, axis, epsilon, gamma, beta): # assert self.built, 'Layer must be built before being called' input_shape = K.shape(x) reduction_axes = list(range(K.ndim(x))) del reduction_axes[axis] del reduction_axes[0] broadcast_shape = [1] * K.ndim(x) broadcast_shape[axis] = input_shape[axis] broadcast_shape[0] = K.shape(x)[0] # Perform normalization: centering and reduction mean = K.mean(x, axis=reduction_axes) broadcast_mean = K.reshape(mean, broadcast_shape) x_centred = x - broadcast_mean variance = K.mean(x_centred ** 2, axis=reduction_axes) + epsilon broadcast_variance = K.reshape(variance, broadcast_shape) x_normed = x_centred / K.sqrt(broadcast_variance) # Perform scaling and shifting broadcast_shape_params = [1] * K.ndim(x) broadcast_shape_params[axis] = K.shape(x)[axis] broadcast_gamma = K.reshape(gamma, broadcast_shape_params) broadcast_beta = K.reshape(beta, broadcast_shape_params) x_LN = broadcast_gamma * x_normed + broadcast_beta return x_LN
Example #14
Source File: fft.py From deep_complex_networks with MIT License | 5 votes |
def call(self, x, mask=None): a = KB.permute_dimensions(x, (1,0,2)) a = KB.reshape(a, (x.shape[1] *x.shape[0], x.shape[2])) a = ifft(a) a = KB.reshape(a, (x.shape[1], x.shape[0], x.shape[2])) return KB.permute_dimensions(a, (1,0,2))
Example #15
Source File: conv.py From deep_complex_networks with MIT License | 5 votes |
def call(self, inputs): input_shape = K.shape(inputs) if self.data_format == 'channels_first': channel_axis = 1 else: channel_axis = -1 if input_shape[channel_axis] is None: raise ValueError('The channel dimension of the inputs ' 'should be defined. Found `None`.') input_dim = input_shape[channel_axis] ker_shape = self.kernel_size + (input_dim, self.filters) nb_kernels = ker_shape[-2] * ker_shape[-1] kernel_shape_4_norm = (np.prod(self.kernel_size), nb_kernels) reshaped_kernel = K.reshape(self.kernel, kernel_shape_4_norm) normalized_weight = K.l2_normalize(reshaped_kernel, axis=0, epsilon=self.epsilon) normalized_weight = K.reshape(self.gamma, (1, ker_shape[-2] * ker_shape[-1])) * normalized_weight shaped_kernel = K.reshape(normalized_weight, ker_shape) shaped_kernel._keras_shape = ker_shape convArgs = {"strides": self.strides[0] if self.rank == 1 else self.strides, "padding": self.padding, "data_format": self.data_format, "dilation_rate": self.dilation_rate[0] if self.rank == 1 else self.dilation_rate} convFunc = {1: K.conv1d, 2: K.conv2d, 3: K.conv3d}[self.rank] output = convFunc(inputs, shaped_kernel, **convArgs) if self.use_bias: output = K.bias_add( output, self.bias, data_format=self.data_format ) if self.activation is not None: output = self.activation(output) return output
Example #16
Source File: utils.py From squeezedet-keras with MIT License | 5 votes |
def tensor_iou(box1, box2, input_mask, config): """Computes pairwise IOU of two lists of boxes Arguments: box1 {[type]} -- First list of boxes box2 {[type]} -- Second list of boxes input_mask {[type]} -- Zero-One indicating which boxes to compute config {[type]} -- dict containing hyperparameters Returns: [type] -- [description] """ xmin = K.maximum(box1[0], box2[0]) ymin = K.maximum(box1[1], box2[1]) xmax = K.minimum(box1[2], box2[2]) ymax = K.minimum(box1[3], box2[3]) w = K.maximum(0.0, xmax - xmin) h = K.maximum(0.0, ymax - ymin) intersection = w * h w1 = box1[2] - box1[0] h1 = box1[3] - box1[1] w2 = box2[2] - box2[0] h2 = box2[3] - box2[1] union = w1 * h1 + w2 * h2 - intersection return intersection / (union + config.EPSILON) * K.reshape(input_mask, [config.BATCH_SIZE, config.ANCHORS])
Example #17
Source File: common.py From imgclsmob with MIT License | 5 votes |
def channel_shuffle(x, groups): """ Channel shuffle operation from 'ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices,' https://arxiv.org/abs/1707.01083. Parameters: ---------- x : keras.backend tensor/variable/symbol Input tensor/variable/symbol. groups : int Number of groups. Returns ------- keras.backend tensor/variable/symbol Resulted tensor/variable/symbol. """ if is_channels_first(): batch, channels, height, width = x._keras_shape else: batch, height, width, channels = x._keras_shape # assert (channels % groups == 0) channels_per_group = channels // groups if is_channels_first(): x = K.reshape(x, shape=(-1, groups, channels_per_group, height, width)) x = K.permute_dimensions(x, pattern=(0, 2, 1, 3, 4)) x = K.reshape(x, shape=(-1, channels, height, width)) else: x = K.reshape(x, shape=(-1, height, width, groups, channels_per_group)) x = K.permute_dimensions(x, pattern=(0, 1, 2, 4, 3)) x = K.reshape(x, shape=(-1, height, width, channels)) update_keras_shape(x) return x
Example #18
Source File: fft.py From deep_complex_networks with MIT License | 5 votes |
def fft2(x): tt = x tt = KB.reshape(tt, (x.shape[0] *x.shape[1], x.shape[2])) tf = fft(tt) tf = KB.reshape(tf, (x.shape[0], x.shape[1], x.shape[2])) tf = KB.permute_dimensions(tf, (0, 2, 1)) tf = KB.reshape(tf, (x.shape[0] *x.shape[2], x.shape[1])) ff = fft(tf) ff = KB.reshape(ff, (x.shape[0], x.shape[2], x.shape[1])) ff = KB.permute_dimensions(ff, (0, 2, 1)) return ff
Example #19
Source File: customlayers.py From deep-mil-for-whole-mammogram-classification with MIT License | 5 votes |
def call(self, x,mask=None): import theano.tensor as T newx = T.sort(x) #response = K.reverse(newx, axes=1) #response = K.sum(x> 0.5, axis=1) / self.k return newx #response = K.reshape(newx,[-1,1]) #return K.concatenate([1-response, response], axis=self.label) #response = K.reshape(x[:,self.axis], (-1,1)) #return K.concatenate([1-response, response], axis=self.axis) #e = K.exp(x - K.max(x, axis=self.axis, keepdims=True)) #s = K.sum(e, axis=self.axis, keepdims=True) #return e / s
Example #20
Source File: customlayers.py From deep-mil-for-whole-mammogram-classification with MIT License | 5 votes |
def call(self, x,mask=None): response = K.reshape(x[:,self.axis], (-1,1)) return K.concatenate([1-response, response], axis=self.axis) #e = K.exp(x - K.max(x, axis=self.axis, keepdims=True)) #s = K.sum(e, axis=self.axis, keepdims=True) #return e / s
Example #21
Source File: customlayers.py From deep-mil-for-whole-mammogram-classification with MIT License | 5 votes |
def call(self, x,mask=None): newx = K.sort(x) #response = K.reverse(newx, axes=1) #response = K.sum(x> 0.5, axis=1) / self.k return K.concatenate([newx[:,:self.softmink], newx[:,newx.shape[1]-self.softmaxk:]], axis=-1) #response = K.reshape(newx,[-1,1]) #return K.concatenate([1-response, response], axis=self.label) #response = K.reshape(x[:,self.axis], (-1,1)) #return K.concatenate([1-response, response], axis=self.axis) #e = K.exp(x - K.max(x, axis=self.axis, keepdims=True)) #s = K.sum(e, axis=self.axis, keepdims=True) #return e / s
Example #22
Source File: customlayers.py From deep-mil-for-whole-mammogram-classification with MIT License | 5 votes |
def call(self, x,mask=None): import theano.tensor as T newx = T.sort(x) #response = K.reverse(newx, axes=1) #response = K.sum(x> 0.5, axis=1) / self.k return newx #response = K.reshape(newx,[-1,1]) #return K.concatenate([1-response, response], axis=self.label) #response = K.reshape(x[:,self.axis], (-1,1)) #return K.concatenate([1-response, response], axis=self.axis) #e = K.exp(x - K.max(x, axis=self.axis, keepdims=True)) #s = K.sum(e, axis=self.axis, keepdims=True) #return e / s
Example #23
Source File: funcs.py From BERT with Apache License 2.0 | 5 votes |
def split_heads(x, n: int, k: bool = False): # B, L, C x_shape = shape_list(x) m = x_shape[-1] new_x_shape = x_shape[:-1] + [n, m // n] new_x = K.reshape(x, new_x_shape) return K.permute_dimensions(new_x, [0, 2, 3, 1] if k else [0, 2, 1, 3])
Example #24
Source File: model.py From object-detection with MIT License | 5 votes |
def yolo_boxes_and_scores(feats, anchors, num_classes, n): '''Process Conv layer output''' box_xy, box_wh, box_confidence, box_class_probs = yolo_head(feats, anchors, num_classes, n) # Convert boxes to be ready for filtering functions boxes = yolo_boxes_to_corners(box_xy, box_wh) boxes = K.reshape(boxes, [-1, 3, 4]) # Compute box scores box_scores = box_confidence * box_class_probs box_scores = K.reshape(box_scores, [-1, 3, num_classes]) return boxes, box_scores
Example #25
Source File: customlayers.py From deep-mil-for-whole-mammogram-classification with MIT License | 5 votes |
def call(self, x,mask=None): response = K.reshape(x[:,self.axis], (-1,1)) return K.concatenate([1-response, response], axis=self.axis) #e = K.exp(x - K.max(x, axis=self.axis, keepdims=True)) #s = K.sum(e, axis=self.axis, keepdims=True) #return e / s
Example #26
Source File: model.py From deep_sort_yolov3 with GNU General Public License v3.0 | 5 votes |
def yolo_head(feats, anchors, num_classes, input_shape): """Convert final layer features to bounding box parameters.""" num_anchors = len(anchors) # Reshape to batch, height, width, num_anchors, box_params. anchors_tensor = K.reshape(K.constant(anchors), [1, 1, 1, num_anchors, 2]) grid_shape = K.shape(feats)[1:3] # height, width grid_y = K.tile(K.reshape(K.arange(0, stop=grid_shape[0]), [-1, 1, 1, 1]), [1, grid_shape[1], 1, 1]) grid_x = K.tile(K.reshape(K.arange(0, stop=grid_shape[1]), [1, -1, 1, 1]), [grid_shape[0], 1, 1, 1]) grid = K.concatenate([grid_x, grid_y]) grid = K.cast(grid, K.dtype(feats)) feats = K.reshape( feats, [-1, grid_shape[0], grid_shape[1], num_anchors, num_classes + 5]) box_xy = K.sigmoid(feats[..., :2]) box_wh = K.exp(feats[..., 2:4]) box_confidence = K.sigmoid(feats[..., 4:5]) box_class_probs = K.sigmoid(feats[..., 5:]) # Adjust preditions to each spatial grid point and anchor size. box_xy = (box_xy + grid) / K.cast(grid_shape[::-1], K.dtype(feats)) box_wh = box_wh * anchors_tensor / K.cast(input_shape[::-1], K.dtype(feats)) return box_xy, box_wh, box_confidence, box_class_probs
Example #27
Source File: recurrent.py From keras_bn_library with MIT License | 5 votes |
def call(self, x, mask=None): input_shape = self.input_spec[0].shape # state format: [h(t-1), c(t-1), y(t-1)] #h_0 = K.zeros_like(x[:, 0, :]) #c_0 = K.zeros_like(x[:, 0, :]) h_0 = K.reshape(x, (-1, self.input_dim)) c_0 = K.reshape(x, (-1, self.input_dim)) initial_states = [h_0, c_0] #self.states = [None, None] #initial_states = self.get_initial_states(x) last_output, outputs, states = K.rnn(step_function=self.step, inputs=x, initial_states=initial_states, go_backwards=self.go_backwards, mask=mask, constants=None, unroll=self.unroll, input_length=input_shape[1]) if self.return_sequences: return outputs else: return last_output
Example #28
Source File: train.py From BERT with Apache License 2.0 | 5 votes |
def sparse_gather(y_pred, target_indices, task_name): clf_h = Lambda(lambda x: K.reshape(x, (-1, K.int_shape(x)[-1])), name=task_name + '_flatten')(y_pred) return Lambda(lambda x: K.gather(x[0], K.cast(x[1], 'int32')), name=task_name + '_gather')([clf_h, target_indices])
Example #29
Source File: keras_yolo.py From object-detection with MIT License | 5 votes |
def yolo_eval(yolo_outputs, image_shape, max_boxes=10, score_threshold=.6, iou_threshold=.5): """Evaluate YOLO model on given input batch and return filtered boxes.""" box_confidence, box_xy, box_wh, box_class_probs = yolo_outputs boxes = yolo_boxes_to_corners(box_xy, box_wh) boxes, scores, classes = yolo_filter_boxes( box_confidence, boxes, box_class_probs, threshold=score_threshold) # Scale boxes back to original image shape. height = image_shape[0] width = image_shape[1] image_dims = K.stack([height, width, height, width]) image_dims = K.reshape(image_dims, [1, 4]) boxes = boxes * image_dims # TODO: Something must be done about this ugly hack! max_boxes_tensor = K.variable(max_boxes, dtype='int32') K.get_session().run(tf.variables_initializer([max_boxes_tensor])) nms_index = tf.image.non_max_suppression( boxes, scores, max_boxes_tensor, iou_threshold=iou_threshold) boxes = K.gather(boxes, nms_index) scores = K.gather(scores, nms_index) classes = K.gather(classes, nms_index) return boxes, scores, classes
Example #30
Source File: funcs.py From BERT with Apache License 2.0 | 5 votes |
def merge_heads(x): new_x = K.permute_dimensions(x, [0, 2, 1, 3]) x_shape = shape_list(new_x) new_x_shape = x_shape[:-2] + [np.prod(x_shape[-2:])] return K.reshape(new_x, new_x_shape) # q,v are B, H, L, C//H ; k is B, H, C//H, L ; mask is B, 1, L, L