import tensorflow as tf

                print("Loading Weights")
                weights = np.load(self.load_weights_path)
                init_state_initializer = tf.constant_initializer(weights['init_state'])
                W_in_initializer = tf.constant_initializer(weights['W_in'])
                W_rec_initializer = tf.constant_initializer(weights['W_rec'])
                W_out_initializer = tf.constant_initializer(weights['W_out'])
                b_rec_initializer = tf.constant_initializer(weights['b_rec'])
                b_out_initializer = tf.constant_initializer(weights['b_out'])
                
                self.input_connectivity_mask = weights['input_Connectivity']
                self.recurrent_connectivity_mask = weights['rec_Connectivity']
                self.output_connectivity_mask = weights['output_Connectivity']



            self.init_state = tf.get_variable('init_state', [N_batch, N_rec],
                                              initializer=init_state_initializer)

            # ------------------------------------------------
            # Trainable variables:
            # Weight matrices and bias weights
            # ------------------------------------------------

            # Input weight matrix:
            # (uniform initialization as in pycog)
            self.W_in = \
                tf.get_variable('W_in', [N_rec, N_in],
                                initializer=W_in_initializer,
                                trainable=self.W_in_train)
            # Recurrent weight matrix:
