def make_structure(self): """ Creates and allocates the network structure """ #Model structure self.model = dy.ParameterCollection() #Lex input self.E = self.model.add_lookup_parameters( (self.lexicon.size(), self.embedding_size)) #Lex output self.O = dy.ClassFactoredSoftmaxBuilder(self.hidden_size, self.brown_file, self.lexicon.words2i, self.model, bias=True) #RNN self.rnn = dy.LSTMBuilder( 2, self.embedding_size + self.char_embedding_size, self.hidden_size, self.model) #char encodings self.char_rnn = CharRNNBuilder(self.char_embedding_size, self.char_memory_size, self.charset, self.model)
def setUp(self): # create model self.pc = dy.ParameterCollection() dic = dict() with open('cluster_file.txt', 'w+') as f: for i in range(5): f.write(str(i) + " " + str(2 * i) + "\n") f.write(str(i) + " " + str(2 * i + 1) + "\n") dic[str(2 * i)] = len(dic) dic[str(2 * i + 1)] = len(dic) self.sm = dy.ClassFactoredSoftmaxBuilder(3, 'cluster_file.txt', dic, self.pc, True)
def allocate_params(self): """ Allocates memory for the model parameters. """ self.model = dy.ParameterCollection() self.word_embeddings = self.model.add_lookup_parameters( (self.lexicon.size(), self.word_embedding_size)) self.rnn = dy.LSTMBuilder( 2, self.word_embedding_size + self.char_embedding_size, self.hidden_size, self.model) self.char_rnn = CharRNNBuilder(self.char_embedding_size, self.char_embedding_size, self.charset, self.model) self.word_softmax = dy.ClassFactoredSoftmaxBuilder( self.hidden_size, self.brown_file, self.lexicon.words2i, self.model, bias=True)