DANE(in_dim, hid_dim, num_classes, num_layers, mode='node', dropout=0.0, gnn='gcn', k=5, train_mode='unsup', tgt_rate=0.05, act=F.relu, weight_decay=1e-05, lr=0.001, epoch=200, device='cuda:0', batch_size=0, num_neigh=-1, verbose=2, **kwargs)
Bases: BaseGDA
DANE: Domain Adaptive Network Embedding (IJCAI-19).
| Parameters: |
|
|---|
L_GCN(embedding, nodes_weight, idx_u, idx_v, k)
Calculate GCN loss for network embedding.
| Parameters: |
|
|---|
| Returns: |
|
|---|
L_cluster(labelsA, embA, labelsB, embB)
Calculate cluster alignment loss.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
Aligns the cluster centers of same classes across domains.
fit(source_data, target_data)
Train the DANE model.
| Parameters: |
|
|---|
Notes
The training process includes:
- Converting graphs to undirected if needed
- Setting up data loaders for both domains
- Initializing GNN and domain discriminator
- Training with adversarial learning
forward_model(source_data, target_data)
Forward pass of the model with adversarial training.
| Parameters: |
|
|---|
| Returns: |
|
|---|
init_model(**kwargs)
Initialize the GNN model.
| Parameters: |
|
|---|
| Returns: |
|
|---|
predict(data, source=False)
Make predictions on given data.
| Parameters: |
|
|---|
| Returns: |
|
|---|
process_graph(data)
Process the input graph data.
| Parameters: |
|
|---|
Notes
Placeholder method for graph preprocessing.
train_d(source_data, target_data)
Train the domain discriminator.
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
Trains discriminator to distinguish between source and target domains using adversarial learning approach.
train_g(source_data, target_data)
Train the generator (GNN model).
| Parameters: |
|
|---|
| Returns: |
|
|---|
Notes
Combines multiple loss terms:
- Adversarial loss
- GCN loss for network embedding
- Cross-entropy loss for classification
- Cluster alignment loss (in semi-supervised mode)