def main(): options = parse_options() print(options) window = T.iscalar('theta') inputs1 = T.tensor3('inputs1', dtype='float32') mask = T.matrix('mask', dtype='uint8') shape = [int(i) for i in options['shape'].split(',')] nonlinearities = [select_nonlinearity(s) for s in options['nonlinearities'].split(',')] layer_names = options['layer_names'].split(',') network = deltanet_majority_vote.load_saved_model(options['input'], (shape, nonlinearities), (None, None, options['input_dim']), inputs1, (None, None), mask, options['lstm_size'], window, options['output_classes'], use_blstm=options['use_blstm']) d = deltanet_majority_vote.extract_lstm_weights(network, layer_names, ['f_lstm', 'b_lstm']) expected_keys = ['f_lstm_w_hid_to_cell', 'f_lstm_w_hid_to_forgetgate', 'f_lstm_w_hid_to_ingate', 'f_lstm_w_hid_to_outgate', 'f_lstm_w_in_to_cell', 'f_lstm_w_in_to_forgetgate', 'f_lstm_w_in_to_ingate', 'f_lstm_w_in_to_outgate', 'f_lstm_b_cell', 'f_lstm_b_forgetgate', 'f_lstm_b_ingate', 'f_lstm_b_outgate', 'b_lstm_w_hid_to_cell', 'b_lstm_w_hid_to_forgetgate', 'b_lstm_w_hid_to_ingate', 'b_lstm_w_hid_to_outgate', 'b_lstm_w_in_to_cell', 'b_lstm_w_in_to_forgetgate', 'b_lstm_w_in_to_ingate', 'b_lstm_w_in_to_outgate', 'b_lstm_b_cell', 'b_lstm_b_forgetgate', 'b_lstm_b_ingate', 'b_lstm_b_outgate'] keys = d.keys() for k in keys: assert k in expected_keys assert type(d[k]) == np.ndarray if 'output' in options: print('save extracted weights to {}'.format(options['output'])) save_mat(d, options['output'])
def load_decoder(path, shapes, nonlinearities): nn = sio.loadmat(path) weights = [] biases = [] shapes = [int(s) for s in shapes.split(',')] nonlinearities = [select_nonlinearity(nonlinearity) for nonlinearity in nonlinearities.split(',')] for i in range(len(shapes)): weights.append(nn['w{}'.format(i+1)].astype('float32')) biases.append(nn['b{}'.format(i+1)][0].astype('float32')) return weights, biases, shapes, nonlinearities
def main(): options = parse_options() print(options) window = T.iscalar('theta') inputs1 = T.tensor3('inputs1', dtype='float32') mask = T.matrix('mask', dtype='uint8') shape = [int(i) for i in options['shape'].split(',')] nonlinearities = [ select_nonlinearity(s) for s in options['nonlinearities'].split(',') ] layer_names = options['layer_names'].split(',') network = deltanet_majority_vote.load_saved_model( options['input'], (shape, nonlinearities), (None, None, options['input_dim']), inputs1, (None, None), mask, options['lstm_size'], window, options['output_classes'], use_blstm=options['use_blstm']) d = deltanet_majority_vote.extract_lstm_weights(network, layer_names, ['f_lstm', 'b_lstm']) expected_keys = [ 'f_lstm_w_hid_to_cell', 'f_lstm_w_hid_to_forgetgate', 'f_lstm_w_hid_to_ingate', 'f_lstm_w_hid_to_outgate', 'f_lstm_w_in_to_cell', 'f_lstm_w_in_to_forgetgate', 'f_lstm_w_in_to_ingate', 'f_lstm_w_in_to_outgate', 'f_lstm_b_cell', 'f_lstm_b_forgetgate', 'f_lstm_b_ingate', 'f_lstm_b_outgate', 'b_lstm_w_hid_to_cell', 'b_lstm_w_hid_to_forgetgate', 'b_lstm_w_hid_to_ingate', 'b_lstm_w_hid_to_outgate', 'b_lstm_w_in_to_cell', 'b_lstm_w_in_to_forgetgate', 'b_lstm_w_in_to_ingate', 'b_lstm_w_in_to_outgate', 'b_lstm_b_cell', 'b_lstm_b_forgetgate', 'b_lstm_b_ingate', 'b_lstm_b_outgate' ] keys = d.keys() for k in keys: assert k in expected_keys assert type(d[k]) == np.ndarray if 'output' in options: print('save extracted weights to {}'.format(options['output'])) save_mat(d, options['output'])
def main(): options = parse_options() print(options) window = T.iscalar('theta') inputs1 = T.tensor3('inputs1', dtype='float32') mask = T.matrix('mask', dtype='uint8') shape = [int(i) for i in options['shape'].split(',')] nonlinearities = [select_nonlinearity(s) for s in options['nonlinearities'].split(',')] network = deltanet_majority_vote.load_saved_model(options['input'], (shape, nonlinearities), (None, None, options['input_dim']), inputs1, (None, None), mask, options['lstm_size'], window, options['output_classes'], use_blstm=options['use_blstm']) d = deltanet_majority_vote.extract_encoder_weights(network, ['fc1', 'fc2', 'fc3', 'bottleneck'], [('w1', 'b1'), ('w2', 'b2'), ('w3', 'b3'), ('w4', 'b4')]) expected_keys = ['w1', 'w2', 'w3', 'w4', 'b1', 'b2', 'b3', 'b4'] keys = d.keys() for k in keys: assert k in expected_keys assert type(d[k]) == np.ndarray if 'output' in options: print('save extracted weights to {}'.format(options['output'])) save_mat(d, options['output'])