(self, metapath, fanouts, dim,
aggregator='mean', concat=False, shared_aggregators=None,
feature_idx=-1, feature_dim=0, max_id=-1,
use_feature=None, use_id=None,
sparse_feature_idx=-1, sparse_feature_max_id=-1,
embedding_dim=16, use_hash_embedding=False,
shared_node_encoder=None, use_residual=False,
shared_embedding_layers=None, **kwargs)
| 543 | |
| 544 | class SageEncoderNew(SageEncoder): |
| 545 | def __init__(self, metapath, fanouts, dim, |
| 546 | aggregator='mean', concat=False, shared_aggregators=None, |
| 547 | feature_idx=-1, feature_dim=0, max_id=-1, |
| 548 | use_feature=None, use_id=None, |
| 549 | sparse_feature_idx=-1, sparse_feature_max_id=-1, |
| 550 | embedding_dim=16, use_hash_embedding=False, |
| 551 | shared_node_encoder=None, use_residual=False, |
| 552 | shared_embedding_layers=None, **kwargs): |
| 553 | super(SageEncoder, self).__init__(**kwargs) |
| 554 | if len(metapath) != len(fanouts): |
| 555 | raise ValueError('Len of metapath must be the same as fanouts.') |
| 556 | if use_feature is not None or use_id is not None: |
| 557 | tf.logging.warning('use_feature is deprecated ' |
| 558 | 'and would not have any effect.') |
| 559 | self.metapath = metapath |
| 560 | self.fanouts = fanouts |
| 561 | self.num_layers = len(metapath) |
| 562 | self.concat = concat |
| 563 | self.feature_dim = feature_dim |
| 564 | self.sparse_feature_idx = sparse_feature_idx |
| 565 | self.sparse_feature_max_id = sparse_feature_max_id |
| 566 | self.use_hash_embedding = use_hash_embedding |
| 567 | self.embedding_dim = embedding_dim |
| 568 | |
| 569 | if shared_node_encoder: |
| 570 | self._node_encoder = shared_node_encoder |
| 571 | else: |
| 572 | self._node_encoder = ShallowEncoder( |
| 573 | feature_idx=feature_idx, feature_dim=feature_dim, |
| 574 | max_id=max_id if use_id else -1, |
| 575 | sparse_feature_idx=sparse_feature_idx, |
| 576 | sparse_feature_max_id=sparse_feature_max_id, |
| 577 | embedding_dim=embedding_dim, |
| 578 | use_hash_embedding=use_hash_embedding) |
| 579 | |
| 580 | layer0_dim = self._node_encoder.output_dim |
| 581 | self.dims = [layer0_dim] + [dim] * self.num_layers |
| 582 | if shared_aggregators is not None: |
| 583 | self.aggregators = shared_aggregators |
| 584 | else: |
| 585 | self.aggregators = self.create_aggregators( |
| 586 | dim, self.num_layers, aggregator, concat=concat) |
| 587 | self._max_id = max_id |
| 588 | self.sparse_embeddings = shared_embedding_layers |
| 589 | |
| 590 | def call(self, inputs): |
| 591 | default_values = [feature_dim + 1 |
nothing calls this directly
no test coverage detected