def extract_embedding_kernel(self, input_name, scope_id, tensorflow_weight_name, output_name): self.scopes[scope_id] = tensorflow_weight_name weight_name = self.generate_name(self.scopes, scope_id+1) weight = self.get_tensor(weight_name) layer = caffe_net.LayerParameter(name=output_name, type='Embed', bottom=[input_name], top=[output_name]) layer.add_data(weight) self.embedding_dim = len(weight[0]) layer.embed_param(len(weight), self.embedding_dim) self.caffe_model.add_layer(layer) self.data_dict[output_name] = Operators.embedding(self.data_dict[input_name], weight, output_name)
def add_embedding(self, input_name, weight_name, output_name, transpose=False): layer = caffe_net.LayerParameter(name=output_name, type='Embed', bottom=[input_name,weight_name], top=[output_name]) weight = self.data_dict[weight_name] if transpose: input_dim = weight.shape[-1] embedding_dim = weight.shape[-2] else: input_dim = weight.shape[-2] embedding_dim = weight.shape[-1] layer.embed_param(input_dim, embedding_dim, transpose) self.caffe_model.add_layer(layer) self.data_dict[output_name] = Operators.embedding(self.data_dict[input_name], weight, transpose, output_name) return output_name