def ops(self): """ operation """ gru = DynamicGRU(size=self.gru_dim, param_attr=attr.ParamAttr(name="%s.w" % self.name), bias_attr=attr.ParamAttr(name="%s.b" % self.name)) return gru
def ops(self): """ operation """ fc = FC(size=self.fc_dim, param_attr=attr.ParamAttr(name="%s.w" % self.name), bias_attr=attr.ParamAttr(name="%s.b" % self.name), act=self.act) return fc
def ops(self, input): """ operation """ proj = fluid.layers.fc(input=input, size=self.gru_dim * 3) gru = fluid.layers.dynamic_gru( input=proj, size=self.gru_dim, param_attr=attr.ParamAttr(name="%s.w" % self.name), bias_attr=attr.ParamAttr(name="%s.b" % self.name)) return gru
def ops(self, input): """ operation """ proj = fluid.layers.fc(input=input, size=self.lstm_dim * 4) lstm, _ = fluid.layers.dynamic_lstm( input=proj, size=self.lstm_dim * 4, param_attr=attr.ParamAttr(name="%s.w" % self.name), bias_attr=attr.ParamAttr(name="%s.b" % self.name)) return lstm
def ops(self, input): """ operation """ fc = fluid.layers.fc(input=input, size=self.fc_dim, param_attr=attr.ParamAttr(name="%s.w" % self.name), bias_attr=attr.ParamAttr(name="%s.b" % self.name), act=self.act, name=self.name) return fc
def lstm(left_emb, right_emb, hid_dim=128): """ LSTM network. """ left_proj = fluid.layers.fc( input=left_emb, size=hid_dim * 4, param_attr=attr.ParamAttr(name="matching_lstm_fc.w"), bias_attr=attr.ParamAttr(name="matching_lstm_fc.b")) right_proj = fluid.layers.fc( input=right_emb, size=hid_dim * 4, param_attr=attr.ParamAttr(name="matching_lstm_fc.w"), bias_attr=attr.ParamAttr(name="matching_lstm_fc.b")) left_lstm, cell = fluid.layers.dynamic_lstm( input=left_proj, size=hid_dim * 4, param_attr=attr.ParamAttr(name="matching_lstm.w"), bias_attr=attr.ParamAttr(name="matching_lstm.b"), is_reverse=False) right_lstm, _ = fluid.layers.dynamic_lstm( input=right_proj, size=hid_dim * 4, param_attr=attr.ParamAttr(name="matching_lstm.w"), bias_attr=attr.ParamAttr(name="matching_lstm.b"), is_reverse=False) left_last = fluid.layers.sequence_last_step(left_lstm) right_last = fluid.layers.sequence_last_step(right_lstm) return left_last, right_last
def gru(left_emb, right_emb, hid_dim=128): """ GRU network. """ left_proj = fluid.layers.fc( input=left_emb, size=hid_dim * 3, param_attr=attr.ParamAttr(name="matching_gru_fc.w"), bias_attr=attr.ParamAttr(name="matching_gru_fc.b")) right_proj = fluid.layers.fc( input=right_emb, size=hid_dim * 3, param_attr=attr.ParamAttr(name="matching_gru_fc.w"), bias_attr=attr.ParamAttr(name="matching_gru_fc.b")) left_gru = fluid.layers.dynamic_gru( input=left_proj, size=hid_dim, param_attr=attr.ParamAttr(name="matching_gru.w"), bias_attr=attr.ParamAttr(name="matching_gru.b")) right_gru = fluid.layers.dynamic_gru( input=right_proj, size=hid_dim, param_attr=attr.ParamAttr(name="matching_gru.w"), bias_attr=attr.ParamAttr(name="matching_gru.b")) left_last = fluid.layers.sequence_last_step(left_gru) right_last = fluid.layers.sequence_last_step(right_gru) return left_last, right_last
def ops(self, input): """ :param input: """ if self.init_w2v: #weight_data = EmbeddingLayer.v2np(self) w_param_attrs = fluid.ParamAttr( name=self.name, learning_rate=1, initializer=fluid.initializer.NumpyArrayInitializer( self.weight_data), trainable=True) emb = fluid.layers.embedding(input=input, size=[self.dict_dim, self.emb_dim], is_sparse=False, param_attr=w_param_attrs, dtype='float32') else: emb = fluid.layers.embedding( input=input, size=[self.dict_dim, self.emb_dim], is_sparse=False, param_attr=attr.ParamAttr(name=self.name), dtype='float32') return emb
def ops(self, input): """ operation """ emb = fluid.layers.embedding(input=input, size=[self.dict_size, self.emb_dim], is_sparse=True, param_attr=attr.ParamAttr(name=self.name)) return emb
def cnn(left_emb, right_emb, hid_dim=128, filter_size=3, num_filters=256): """ CNN network. """ # cnn layer left_cnn = fluid.nets.sequence_conv_pool( input=left_emb, num_filters=num_filters, filter_size=filter_size, param_attr=attr.ParamAttr(name="matching_cnn"), act="relu", pool_type="max") right_cnn = fluid.nets.sequence_conv_pool( input=right_emb, num_filters=num_filters, filter_size=filter_size, param_attr=attr.ParamAttr(name="matching_cnn"), act="relu", pool_type="max") return left_cnn, right_cnn
def ops(self, input): """ operation """ conv = fluid.nets.sequence_conv_pool( input=input, filter_size=self.filter_size, num_filters=self.num_filters, param_attr=attr.ParamAttr(name=self.name), act="relu") return conv
def ops(self): """ operation """ emb = Embedding(size=[self.dict_size, self.emb_dim], is_sparse=True, padding_idx=self.padding_idx, param_attr=attr.ParamAttr( name=self.name, initializer=fluid.initializer.Xavier())) return emb
def ops(self): """ operation """ # TODO(huihuangzheng): The original code set the is_sparse=True, but it # causes crush in dy2stat. Set it to True after fixing it. emb = Embedding(size=[self.dict_size, self.emb_dim], is_sparse=True, padding_idx=self.padding_idx, param_attr=attr.ParamAttr( name=self.name, initializer=fluid.initializer.Xavier())) return emb