def project_cosine(project_dim, init = glorot_uniform(), name=''): """ Compute the project cosine similarity of two input sequences, where each of the input will be projected to a new dimention space (project_dim) via Wi/Wm """ Wi = Parameter(_INFERRED + (project_dim,), init = init, name='Wi') Wm = Parameter(_INFERRED + (project_dim,), init = init, name='Wm') status = placeholder(name='status') memory = placeholder(name='memory') projected_status = times(status, Wi, name = 'projected_status') projected_memory = times(memory, Wm, name = 'projected_memory') status_br = sequence.broadcast_as(projected_status, projected_memory, name='status_broadcast') sim = cosine_distance(status_br, projected_memory, name= name) return sim
def _setup_test_model(self, *args, **kwargs): inputs = placeholder(shape=(1, )) outputs = input_variable(shape=(1, ), dtype=np.float32) q = Dense(1, activation=None)(inputs) loss = cross_entropy_with_softmax(q, outputs) return {'inputs': inputs, 'outputs': outputs, 'f': q, 'loss': loss}
def _setup_test_model(self, *args, **kwargs): inputs = placeholder(shape=(1,)) outputs = input_variable(shape=(1,), dtype=np.float32) q = Dense(1, activation=None)(inputs) loss = cross_entropy_with_softmax(q, outputs) return { 'inputs': inputs, 'outputs': outputs, 'f': q, 'loss': loss }
def modify_model(features, n_classes): loaded_model = load_model(model_file) feature_node = find_by_name(loaded_model, 'features') last_node = find_by_name(loaded_model, 'h2_d') all_layers = combine([last_node.owner ]).clone(CloneMethod.freeze, {feature_node: placeholder()}) feat_norm = features - Constant(114) fc_out = all_layers(feat_norm) z = Dense(num_classes)(fc_out) return (z)