(self)
| 257 | return embedding |
| 258 | |
| 259 | def _embedding_input_layer(self): |
| 260 | for key in SEQ_COLUMNS: |
| 261 | self._feature[key] = tf.strings.split(self._feature[key], '') |
| 262 | self._feature[key] = tf.sparse.slice( |
| 263 | self._feature[key], [0, 0], [self._batch_size, MAX_SEQ_LENGTH]) |
| 264 | |
| 265 | # get uid embeddings |
| 266 | if self._adaptive_emb and not self.tf: |
| 267 | '''Adaptive Embedding Feature Part 1 of 2''' |
| 268 | adaptive_mask_tensors = { |
| 269 | 'UID': tf.ones([args.batch_size], tf.int32) |
| 270 | } |
| 271 | uid_emb = tf.feature_column.input_layer( |
| 272 | self._feature, |
| 273 | self._uid_emb_column, |
| 274 | adaptive_mask_tensors=adaptive_mask_tensors) |
| 275 | else: |
| 276 | uid_emb = tf.feature_column.input_layer(self._feature, |
| 277 | self._uid_emb_column) |
| 278 | # get embeddings of item and category |
| 279 | # create embedding table |
| 280 | if self._ev and not self.tf: |
| 281 | '''Embedding Variable Feature with get embedding variable API''' |
| 282 | item_embedding_var = tf.get_embedding_variable( |
| 283 | 'item_embedding_var', |
| 284 | self._embedding_dim, |
| 285 | ev_option=self._ev_opt) |
| 286 | category_embedding_var = tf.get_embedding_variable( |
| 287 | 'category_embedding_var', |
| 288 | self._embedding_dim, |
| 289 | ev_option=self._ev_opt) |
| 290 | elif self._multihash and not self.tf: |
| 291 | '''Multi-Hash Variable''' |
| 292 | item_embedding_var = tf.get_multihash_variable( |
| 293 | 'item_embedding_var', |
| 294 | [[ |
| 295 | int(self._item_cate_column._num_buckets**0.5), |
| 296 | self._embedding_dim |
| 297 | ], |
| 298 | [ |
| 299 | int(self._item_cate_column._num_buckets / |
| 300 | int(self._item_cate_column._num_buckets**0.5)), |
| 301 | self._embedding_dim |
| 302 | ]]) |
| 303 | category_embedding_var = tf.get_multihash_variable( |
| 304 | 'category_embedding_var', |
| 305 | [[ |
| 306 | int(self._category_cate_column._num_buckets**0.5), |
| 307 | self._embedding_dim |
| 308 | ], |
| 309 | [ |
| 310 | int(self._category_cate_column._num_buckets / |
| 311 | int(self._category_cate_column._num_buckets**0.5)), |
| 312 | self._embedding_dim |
| 313 | ]]) |
| 314 | else: |
| 315 | item_embedding_var = tf.get_variable( |
| 316 | 'item_embedding_var', |
no test coverage detected