Distance Encoding for GNN Design

Overview

Distance-encoding for GNN design

This repository is the official PyTorch implementation of the DEGNN and DEAGNN framework reported in the paper:
Distance-Encoding -- Design Provably More PowerfulGNNs for Structural Representation Learning, to appear in NeurIPS 2020.

The project's home page is: http://snap.stanford.edu/distance-encoding/

Authors & Contact

Pan Li, Yanbang Wang, Hongwei Wang, Jure Leskovec

Questions on this repo can be emailed to [email protected] (Yanbang Wang)

Installation

Requirements: Python >= 3.5, Anaconda3

  • Update conda:
conda update -n base -c defaults conda
  • Install basic dependencies to virtual environment and activate it:
conda env create -f environment.yml
conda activate degnn-env
  • Install PyTorch >= 1.4.0 and torch-geometric >= 1.5.0 (please refer to the PyTorch and PyTorch Geometric official websites for more details). Commands examples are:
conda install pytorch=1.4.0 torchvision cudatoolkit=10.1 -c pytorch
pip install torch-scatter==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.4.0.html
pip install torch-sparse==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.4.0.html
pip install torch-cluster==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.4.0.html
pip install torch-spline-conv==latest+cu101 -f https://pytorch-geometric.com/whl/torch-1.4.0.html
pip install torch-geometric

The latest tested combination is: Python 3.8.2 + Pytorch 1.4.0 + torch-geometric 1.5.0.

Quick Start

python main.py --dataset celegans --feature sp --hidden_features 100 --prop_depth 1 --test_ratio 0.1 --epoch 300

    This uses 100-dimensional hidden features, 80/10/10 split of train/val/test set, and trains for 300 epochs.

  • To train DEAGNN-SPD for Task 3 (node-triads prediction) on C.elegans dataset:
python main.py --dataset celegans_tri --hidden_features 100 --prop_depth 2 --epoch 300 --feature sp --max_sp 5 --l2 1e-3 --test_ratio 0.1 --seed 9

    This enables 2-hop propagation per layer, truncates distance encoding at 5, and uses random seed 9.

  • To train DEGNN-LP (i.e. the random walk variant) for Task 1 (node-level prediction) on usa-airports using average accuracy as evaluation metric:
python main.py --dataset usa-airports --metric acc --hidden_features 100 --feature rw --rw_depth 2 --epoch 500 --bs 128 --test_ratio 0.1

Note that here the test_ratio currently contains both validation set and the actual test set, and will be changed to contain only test set.

  • To generate Figure2 LEFT of the paper (Simulation to validate Theorem 3.3):
python main.py --dataset simulation --max_sp 10

    The result will be plot to ./simulation_results.png.

  • All detailed training logs can be found at <log_dir>/<dataset>/<training-time>.log. A one-line summary will also be appended to <log_dir>/result_summary.log for each training instance.

Usage Summary

Interface for DE-GNN framework [-h] [--dataset DATASET] [--test_ratio TEST_RATIO]
                                      [--model {DE-GNN,GIN,GCN,GraphSAGE,GAT}] [--layers LAYERS]
                                      [--hidden_features HIDDEN_FEATURES] [--metric {acc,auc}] [--seed SEED] [--gpu GPU]
                                      [--data_usage DATA_USAGE] [--directed DIRECTED] [--parallel] [--prop_depth PROP_DEPTH]
                                      [--use_degree USE_DEGREE] [--use_attributes USE_ATTRIBUTES] [--feature FEATURE]
                                      [--rw_depth RW_DEPTH] [--max_sp MAX_SP] [--epoch EPOCH] [--bs BS] [--lr LR]
                                      [--optimizer OPTIMIZER] [--l2 L2] [--dropout DROPOUT] [--k K] [--n [N [N ...]]]
                                      [--N N] [--T T] [--log_dir LOG_DIR] [--summary_file SUMMARY_FILE] [--debug]

Optinal Arguments

  -h, --help            show this help message and exit
  
  # general settings
  --dataset DATASET     dataset name
  --test_ratio TEST_RATIO
                        ratio of the test against whole
  --model {DE-GCN,GIN,GAT,GCN,GraphSAGE}
                        model to use
  --layers LAYERS       largest number of layers
  --hidden_features HIDDEN_FEATURES
                        hidden dimension
  --metric {acc,auc}    metric for evaluating performance
  --seed SEED           seed to initialize all the random modules
  --gpu GPU             gpu id
  --adj_norm {asym,sym,None}
                        how to normalize adj
  --data_usage DATA_USAGE
                        use partial dataset
  --directed DIRECTED   (Currently unavailable) whether to treat the graph as directed
  --parallel            (Currently unavailable) whether to use multi cpu cores to prepare data
  
  # positional encoding settings
  --prop_depth PROP_DEPTH
                        propagation depth (number of hops) for one layer
  --use_degree USE_DEGREE
                        whether to use node degree as the initial feature
  --use_attributes USE_ATTRIBUTES
                        whether to use node attributes as the initial feature
  --feature FEATURE     distance encoding category: shortest path or random walk (landing probabilities)
  --rw_depth RW_DEPTH   random walk steps
  --max_sp MAX_SP       maximum distance to be encoded for shortest path feature
  
  # training settings
  --epoch EPOCH         number of epochs to train
  --bs BS               minibatch size
  --lr LR               learning rate
  --optimizer OPTIMIZER
                        optimizer to use
  --l2 L2               l2 regularization weight
  --dropout DROPOUT     dropout rate
  
  # imulation settings (valid only when dataset == 'simulation')
  --k K                 node degree (k) or synthetic k-regular graph
  --n [N [N ...]]       a list of number of nodes in each connected k-regular subgraph
  --N N                 total number of nodes in simultation
  --T T                 largest number of layers to be tested
  
  # logging
  --log_dir LOG_DIR     log directory
  --summary_file SUMMARY_FILE
                        brief summary of training result
  --debug               whether to use debug mode

Reference

If you make use of the code/experiment of Distance-encoding in your work, please cite our paper:

@article{li2020distance,
  title={Distance Encoding: Design Provably More Powerful Neural Networks for Graph Representation Learning},
  author={Li, Pan and Wang, Yanbang and Wang, Hongwei and Leskovec, Jure},
  journal={Advances in Neural Information Processing Systems},
  volume={33},
  year={2020}
}
Comments
  • The training ACC decreases to 0.5 after 130 epochs?

    The training ACC decreases to 0.5 after 130 epochs?

    I found that the training ACC(AUC) decreased to 0.5 after about 130 epochs. Here is the training log:


    I1112 15:45:48.273541 140547172456256 log.py:30] Command line executed: python main.py --dataset celegans_tri --hidden_features 100 --prop_depth 2 --epoch 300 --feature sp --max_sp 5 --test_ratio 0.1 --seed 9 --metric acc I1112 15:45:48.273656 140547172456256 log.py:31] Full args parsed: I1112 15:45:48.273727 140547172456256 log.py:32] Namespace(N=1000, T=6, bs=64, data_usage=1.0, dataset='celegans_tri', debug=False, directed=False, dropout=0, epoch=300, feature='sp', gpu=0, hidden_features=100, k=3, l2=0, layers=2, log_dir='./log/', lr=0.0001, max_sp=5, metric='acc', model='DE-GNN', n=None, optimizer='sgd', parallel=False, prop_depth=2, rw_depth=3, seed=9, summary_file='result_summary.log', test_ratio=0.1, use_attributes=False, use_degree=True) I1112 15:45:48.281443 140547172456256 utils.py:133] Read in celegans_tri for triplet_prediction -- number of nodes: 297, number of edges: 2148, number of labels: 0. Directed: False I1112 15:45:48.288998 140547172456256 utils.py:174] Labels unavailable. Generating training/test instances from dataset ... I1112 15:45:48.333193 140547172456256 utils.py:185] Generate 6482 train+val+test instances in total. data_usage: 1.0. I1112 15:45:48.333460 140547172456256 utils.py:215] Encode positions ... (Parallel: False) 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6482/6482 [01:07<00:00, 95.33it/s] I1112 15:46:56.363863 140547172456256 utils.py:168] Train size :5186, val size: 648, test size: 648, val ratio: 0.1, test ratio: 0.1 I1112 15:46:56.366519 140547172456256 utils.py:54] Data roughly takes 0.5350 GB in total I1112 15:46:56.369619 140547172456256 utils.py:303] Model: DE-GNN, #layers: ModuleList( (0): TAGConv(8, 100, K=2) (1): TAGConv(100, 100, K=2) ), in_features: 8, hidden_features: 100, out_features: 2 I1112 15:47:02.813145 140547172456256 train.py:23] epoch 0 best test acc: 0.7531, train loss: 0.6286; train acc: 0.7590 val acc: 0.7562 test acc: 0.7531 I1112 15:47:05.933901 140547172456256 train.py:23] epoch 1 best test acc: 0.8040, train loss: 0.4676; train acc: 0.8029 val acc: 0.7994 test acc: 0.8040 I1112 15:47:08.614912 140547172456256 train.py:23] epoch 2 best test acc: 0.8349, train loss: 0.3969; train acc: 0.8293 val acc: 0.8287 test acc: 0.8349 I1112 15:47:11.734178 140547172456256 train.py:23] epoch 3 best test acc: 0.8410, train loss: 0.3570; train acc: 0.8467 val acc: 0.8395 test acc: 0.8410 I1112 15:47:14.493129 140547172456256 train.py:23] epoch 4 best test acc: 0.8410, train loss: 0.3425; train acc: 0.8525 val acc: 0.8318 test acc: 0.8503 I1112 15:47:17.240050 140547172456256 train.py:23] epoch 5 best test acc: 0.8781, train loss: 0.2940; train acc: 0.8787 val acc: 0.8719 test acc: 0.8781 I1112 15:47:19.997766 140547172456256 train.py:23] epoch 6 best test acc: 0.8966, train loss: 0.2519; train acc: 0.8986 val acc: 0.8889 test acc: 0.8966 I1112 15:47:22.747688 140547172456256 train.py:23] epoch 7 best test acc: 0.8966, train loss: 0.2557; train acc: 0.8988 val acc: 0.9012 test acc: 0.8966 I1112 15:47:25.635686 140547172456256 train.py:23] epoch 8 best test acc: 0.9074, train loss: 0.2466; train acc: 0.9038 val acc: 0.9028 test acc: 0.9074 I1112 15:47:28.382224 140547172456256 train.py:23] epoch 9 best test acc: 0.9074, train loss: 0.3302; train acc: 0.8685 val acc: 0.8719 test acc: 0.8765 I1112 15:47:31.256748 140547172456256 train.py:23] epoch 10 best test acc: 0.9074, train loss: 0.2827; train acc: 0.8781 val acc: 0.8580 test acc: 0.8873 I1112 15:47:34.004014 140547172456256 train.py:23] epoch 11 best test acc: 0.9074, train loss: 0.3233; train acc: 0.8569 val acc: 0.8333 test acc: 0.8472 I1112 15:47:36.780871 140547172456256 train.py:23] epoch 12 best test acc: 0.9074, train loss: 0.2504; train acc: 0.9047 val acc: 0.8997 test acc: 0.9028 I1112 15:47:39.623228 140547172456256 train.py:23] epoch 13 best test acc: 0.9074, train loss: 0.2544; train acc: 0.9022 val acc: 0.9043 test acc: 0.9074 I1112 15:47:42.357761 140547172456256 train.py:23] epoch 14 best test acc: 0.9074, train loss: 0.2534; train acc: 0.9059 val acc: 0.8966 test acc: 0.9012 I1112 15:47:45.109289 140547172456256 train.py:23] epoch 15 best test acc: 0.9074, train loss: 0.3000; train acc: 0.8833 val acc: 0.8688 test acc: 0.8765 I1112 15:47:47.861573 140547172456256 train.py:23] epoch 16 best test acc: 0.9074, train loss: 0.3083; train acc: 0.8727 val acc: 0.8580 test acc: 0.8719 I1112 15:47:50.728797 140547172456256 train.py:23] epoch 17 best test acc: 0.9043, train loss: 0.2336; train acc: 0.9069 val acc: 0.9074 test acc: 0.9043 I1112 15:47:53.489672 140547172456256 train.py:23] epoch 18 best test acc: 0.9043, train loss: 0.3282; train acc: 0.8623 val acc: 0.8688 test acc: 0.8765 I1112 15:47:56.245700 140547172456256 train.py:23] epoch 19 best test acc: 0.9043, train loss: 0.2355; train acc: 0.9115 val acc: 0.8997 test acc: 0.9105 I1112 15:47:59.115453 140547172456256 train.py:23] epoch 20 best test acc: 0.9043, train loss: 0.2692; train acc: 0.8920 val acc: 0.8750 test acc: 0.8827 I1112 15:48:01.906831 140547172456256 train.py:23] epoch 21 best test acc: 0.9043, train loss: 0.2548; train acc: 0.9005 val acc: 0.9028 test acc: 0.8981 I1112 15:48:04.673026 140547172456256 train.py:23] epoch 22 best test acc: 0.9043, train loss: 0.2342; train acc: 0.9140 val acc: 0.9074 test acc: 0.9059 I1112 15:48:07.449151 140547172456256 train.py:23] epoch 23 best test acc: 0.9043, train loss: 0.2673; train acc: 0.8818 val acc: 0.8657 test acc: 0.8765 I1112 15:48:10.274573 140547172456256 train.py:23] epoch 24 best test acc: 0.9090, train loss: 0.2431; train acc: 0.9123 val acc: 0.9136 test acc: 0.9090 I1112 15:48:13.033553 140547172456256 train.py:23] epoch 25 best test acc: 0.9090, train loss: 0.2288; train acc: 0.9134 val acc: 0.9090 test acc: 0.9120 I1112 15:48:15.804655 140547172456256 train.py:23] epoch 26 best test acc: 0.9090, train loss: 0.2832; train acc: 0.9078 val acc: 0.8997 test acc: 0.8904 I1112 15:48:18.670313 140547172456256 train.py:23] epoch 27 best test acc: 0.9090, train loss: 0.2467; train acc: 0.9140 val acc: 0.9059 test acc: 0.9105 I1112 15:48:21.435182 140547172456256 train.py:23] epoch 28 best test acc: 0.9090, train loss: 0.2343; train acc: 0.9115 val acc: 0.9028 test acc: 0.8997 I1112 15:48:24.195807 140547172456256 train.py:23] epoch 29 best test acc: 0.9090, train loss: 0.2449; train acc: 0.9115 val acc: 0.9028 test acc: 0.9028 I1112 15:48:27.022027 140547172456256 train.py:23] epoch 30 best test acc: 0.9090, train loss: 0.2383; train acc: 0.9150 val acc: 0.9074 test acc: 0.9120 I1112 15:48:29.836135 140547172456256 train.py:23] epoch 31 best test acc: 0.9090, train loss: 0.2647; train acc: 0.8972 val acc: 0.8873 test acc: 0.8858 I1112 15:48:32.587397 140547172456256 train.py:23] epoch 32 best test acc: 0.9090, train loss: 0.2325; train acc: 0.9086 val acc: 0.9043 test acc: 0.9012 I1112 15:48:35.345056 140547172456256 train.py:23] epoch 33 best test acc: 0.9090, train loss: 0.2265; train acc: 0.9123 val acc: 0.9105 test acc: 0.9059 I1112 15:48:38.106500 140547172456256 train.py:23] epoch 34 best test acc: 0.9090, train loss: 0.2474; train acc: 0.9051 val acc: 0.9043 test acc: 0.8920 I1112 15:48:40.861380 140547172456256 train.py:23] epoch 35 best test acc: 0.9090, train loss: 0.2525; train acc: 0.9117 val acc: 0.9105 test acc: 0.9059 I1112 15:48:43.710895 140547172456256 train.py:23] epoch 36 best test acc: 0.9090, train loss: 0.2516; train acc: 0.8966 val acc: 0.8827 test acc: 0.8750 I1112 15:48:46.486055 140547172456256 train.py:23] epoch 37 best test acc: 0.9090, train loss: 0.2544; train acc: 0.8941 val acc: 0.9028 test acc: 0.8951 I1112 15:48:49.241073 140547172456256 train.py:23] epoch 38 best test acc: 0.9090, train loss: 0.2523; train acc: 0.9053 val acc: 0.8951 test acc: 0.8873 I1112 15:48:52.007320 140547172456256 train.py:23] epoch 39 best test acc: 0.9090, train loss: 0.2478; train acc: 0.9042 val acc: 0.9120 test acc: 0.9012 I1112 15:48:55.012379 140547172456256 train.py:23] epoch 40 best test acc: 0.9090, train loss: 0.2328; train acc: 0.9103 val acc: 0.9059 test acc: 0.9105 I1112 15:48:57.910970 140547172456256 train.py:23] epoch 41 best test acc: 0.9090, train loss: 0.2331; train acc: 0.9073 val acc: 0.9090 test acc: 0.9074 I1112 15:49:00.912952 140547172456256 train.py:23] epoch 42 best test acc: 0.9090, train loss: 0.2701; train acc: 0.8909 val acc: 0.8951 test acc: 0.8935 I1112 15:49:03.783324 140547172456256 train.py:23] epoch 43 best test acc: 0.9090, train loss: 0.2506; train acc: 0.9049 val acc: 0.8966 test acc: 0.8889 I1112 15:49:06.666281 140547172456256 train.py:23] epoch 44 best test acc: 0.9090, train loss: 0.2209; train acc: 0.9138 val acc: 0.9120 test acc: 0.9182 I1112 15:49:09.528115 140547172456256 train.py:23] epoch 45 best test acc: 0.9090, train loss: 0.2495; train acc: 0.9046 val acc: 0.9059 test acc: 0.9028 I1112 15:49:12.371705 140547172456256 train.py:23] epoch 46 best test acc: 0.9090, train loss: 0.2423; train acc: 0.9094 val acc: 0.9059 test acc: 0.9090 I1112 15:49:15.126239 140547172456256 train.py:23] epoch 47 best test acc: 0.9105, train loss: 0.2240; train acc: 0.9128 val acc: 0.9182 test acc: 0.9105 I1112 15:49:17.901936 140547172456256 train.py:23] epoch 48 best test acc: 0.9120, train loss: 0.2197; train acc: 0.9117 val acc: 0.9198 test acc: 0.9120 I1112 15:49:20.665055 140547172456256 train.py:23] epoch 49 best test acc: 0.9120, train loss: 0.2495; train acc: 0.9032 val acc: 0.8920 test acc: 0.8951 I1112 15:49:23.544250 140547172456256 train.py:23] epoch 50 best test acc: 0.9120, train loss: 0.2544; train acc: 0.9049 val acc: 0.9074 test acc: 0.9043 I1112 15:49:26.305577 140547172456256 train.py:23] epoch 51 best test acc: 0.9120, train loss: 0.2496; train acc: 0.9069 val acc: 0.8951 test acc: 0.8951 I1112 15:49:29.075433 140547172456256 train.py:23] epoch 52 best test acc: 0.9120, train loss: 0.2342; train acc: 0.9090 val acc: 0.9151 test acc: 0.8997 I1112 15:49:31.839549 140547172456256 train.py:23] epoch 53 best test acc: 0.9120, train loss: 0.2273; train acc: 0.9117 val acc: 0.9059 test acc: 0.9028 I1112 15:49:34.621096 140547172456256 train.py:23] epoch 54 best test acc: 0.9120, train loss: 0.2263; train acc: 0.9128 val acc: 0.9182 test acc: 0.9028 I1112 15:49:37.398613 140547172456256 train.py:23] epoch 55 best test acc: 0.9120, train loss: 0.2180; train acc: 0.9126 val acc: 0.9167 test acc: 0.9090 I1112 15:49:40.205296 140547172456256 train.py:23] epoch 56 best test acc: 0.9120, train loss: 0.2468; train acc: 0.9103 val acc: 0.8981 test acc: 0.9074 I1112 15:49:42.973476 140547172456256 train.py:23] epoch 57 best test acc: 0.9120, train loss: 0.2296; train acc: 0.9155 val acc: 0.9198 test acc: 0.9136 I1112 15:49:45.762340 140547172456256 train.py:23] epoch 58 best test acc: 0.9120, train loss: 0.2316; train acc: 0.9125 val acc: 0.9074 test acc: 0.9198 I1112 15:49:48.522893 140547172456256 train.py:23] epoch 59 best test acc: 0.9120, train loss: 0.2238; train acc: 0.9144 val acc: 0.9167 test acc: 0.9228 I1112 15:49:51.282130 140547172456256 train.py:23] epoch 60 best test acc: 0.9120, train loss: 0.2246; train acc: 0.9103 val acc: 0.9136 test acc: 0.9074 I1112 15:49:54.043246 140547172456256 train.py:23] epoch 61 best test acc: 0.9120, train loss: 0.2403; train acc: 0.9142 val acc: 0.9120 test acc: 0.9105 I1112 15:49:56.805625 140547172456256 train.py:23] epoch 62 best test acc: 0.9120, train loss: 0.2310; train acc: 0.9119 val acc: 0.9090 test acc: 0.9059 I1112 15:49:59.563143 140547172456256 train.py:23] epoch 63 best test acc: 0.9120, train loss: 0.2195; train acc: 0.9153 val acc: 0.9120 test acc: 0.9074 I1112 15:50:02.321684 140547172456256 train.py:23] epoch 64 best test acc: 0.9120, train loss: 0.2387; train acc: 0.9125 val acc: 0.9012 test acc: 0.9028 I1112 15:50:05.080119 140547172456256 train.py:23] epoch 65 best test acc: 0.9120, train loss: 0.2434; train acc: 0.9140 val acc: 0.9090 test acc: 0.8997 I1112 15:50:07.853172 140547172456256 train.py:23] epoch 66 best test acc: 0.9120, train loss: 0.2564; train acc: 0.8704 val acc: 0.8472 test acc: 0.8611 I1112 15:50:10.613468 140547172456256 train.py:23] epoch 67 best test acc: 0.9120, train loss: 0.2290; train acc: 0.9180 val acc: 0.9105 test acc: 0.9090 I1112 15:50:13.371000 140547172456256 train.py:23] epoch 68 best test acc: 0.9120, train loss: 0.2249; train acc: 0.9157 val acc: 0.9090 test acc: 0.9105 I1112 15:50:16.165453 140547172456256 train.py:23] epoch 69 best test acc: 0.9120, train loss: 0.2418; train acc: 0.9107 val acc: 0.9012 test acc: 0.9059 I1112 15:50:18.991580 140547172456256 train.py:23] epoch 70 best test acc: 0.9120, train loss: 0.2323; train acc: 0.9179 val acc: 0.9090 test acc: 0.9120 I1112 15:50:21.766418 140547172456256 train.py:23] epoch 71 best test acc: 0.9120, train loss: 0.2373; train acc: 0.9113 val acc: 0.9059 test acc: 0.9090 I1112 15:50:24.521621 140547172456256 train.py:23] epoch 72 best test acc: 0.9120, train loss: 0.2628; train acc: 0.9080 val acc: 0.9120 test acc: 0.9059 I1112 15:50:27.277817 140547172456256 train.py:23] epoch 73 best test acc: 0.9120, train loss: 0.2662; train acc: 0.8961 val acc: 0.9012 test acc: 0.8951 I1112 15:50:30.039493 140547172456256 train.py:23] epoch 74 best test acc: 0.9120, train loss: 0.2206; train acc: 0.9150 val acc: 0.9105 test acc: 0.9120 I1112 15:50:32.801931 140547172456256 train.py:23] epoch 75 best test acc: 0.9120, train loss: 0.2598; train acc: 0.8993 val acc: 0.8827 test acc: 0.8750 I1112 15:50:35.562673 140547172456256 train.py:23] epoch 76 best test acc: 0.9120, train loss: 0.2457; train acc: 0.9036 val acc: 0.8812 test acc: 0.8997 I1112 15:50:38.315630 140547172456256 train.py:23] epoch 77 best test acc: 0.9120, train loss: 0.2627; train acc: 0.8993 val acc: 0.8735 test acc: 0.8981 I1112 15:50:41.091242 140547172456256 train.py:23] epoch 78 best test acc: 0.9120, train loss: 0.2617; train acc: 0.8878 val acc: 0.8657 test acc: 0.8750 I1112 15:50:43.896227 140547172456256 train.py:23] epoch 79 best test acc: 0.9120, train loss: 0.2502; train acc: 0.8947 val acc: 0.8688 test acc: 0.8843 I1112 15:50:46.688500 140547172456256 train.py:23] epoch 80 best test acc: 0.9120, train loss: 0.2173; train acc: 0.9165 val acc: 0.9059 test acc: 0.9182 I1112 15:50:49.467313 140547172456256 train.py:23] epoch 81 best test acc: 0.9120, train loss: 0.2392; train acc: 0.9053 val acc: 0.9028 test acc: 0.9043 I1112 15:50:52.229305 140547172456256 train.py:23] epoch 82 best test acc: 0.9120, train loss: 0.2500; train acc: 0.9071 val acc: 0.8843 test acc: 0.8966 I1112 15:50:55.001576 140547172456256 train.py:23] epoch 83 best test acc: 0.9120, train loss: 0.2790; train acc: 0.8966 val acc: 0.9012 test acc: 0.8904 I1112 15:50:57.769585 140547172456256 train.py:23] epoch 84 best test acc: 0.9120, train loss: 0.3611; train acc: 0.8677 val acc: 0.8812 test acc: 0.8750 I1112 15:51:00.533642 140547172456256 train.py:23] epoch 85 best test acc: 0.9120, train loss: 0.4286; train acc: 0.8228 val acc: 0.7886 test acc: 0.8040 I1112 15:51:03.291250 140547172456256 train.py:23] epoch 86 best test acc: 0.9120, train loss: 0.3781; train acc: 0.8000 val acc: 0.7932 test acc: 0.8009 I1112 15:51:06.045162 140547172456256 train.py:23] epoch 87 best test acc: 0.9120, train loss: 0.3915; train acc: 0.8268 val acc: 0.8410 test acc: 0.8225 I1112 15:51:08.795995 140547172456256 train.py:23] epoch 88 best test acc: 0.9120, train loss: 0.3270; train acc: 0.8999 val acc: 0.9043 test acc: 0.8951 I1112 15:51:11.571081 140547172456256 train.py:23] epoch 89 best test acc: 0.9120, train loss: 0.4492; train acc: 0.6635 val acc: 0.6867 test acc: 0.6651 I1112 15:51:14.359972 140547172456256 train.py:23] epoch 90 best test acc: 0.9120, train loss: 0.3873; train acc: 0.6847 val acc: 0.7083 test acc: 0.6944 I1112 15:51:17.164670 140547172456256 train.py:23] epoch 91 best test acc: 0.9120, train loss: 0.4855; train acc: 0.8722 val acc: 0.8812 test acc: 0.8673 I1112 15:51:19.943781 140547172456256 train.py:23] epoch 92 best test acc: 0.9120, train loss: 0.4262; train acc: 0.8041 val acc: 0.8071 test acc: 0.8117 I1112 15:51:22.699699 140547172456256 train.py:23] epoch 93 best test acc: 0.9120, train loss: 0.4460; train acc: 0.7451 val acc: 0.7515 test acc: 0.7577 I1112 15:51:25.458915 140547172456256 train.py:23] epoch 94 best test acc: 0.9120, train loss: 0.4742; train acc: 0.8309 val acc: 0.8395 test acc: 0.8302 I1112 15:51:28.222321 140547172456256 train.py:23] epoch 95 best test acc: 0.9120, train loss: 0.4984; train acc: 0.8669 val acc: 0.8735 test acc: 0.8565 I1112 15:51:30.984814 140547172456256 train.py:23] epoch 96 best test acc: 0.9120, train loss: 0.4360; train acc: 0.8076 val acc: 0.8117 test acc: 0.8117 I1112 15:51:33.746705 140547172456256 train.py:23] epoch 97 best test acc: 0.9120, train loss: 0.4042; train acc: 0.8359 val acc: 0.8441 test acc: 0.8333 I1112 15:51:36.503728 140547172456256 train.py:23] epoch 98 best test acc: 0.9120, train loss: 0.3924; train acc: 0.8633 val acc: 0.8719 test acc: 0.8519 I1112 15:51:39.297686 140547172456256 train.py:23] epoch 99 best test acc: 0.9120, train loss: 0.4202; train acc: 0.8887 val acc: 0.8858 test acc: 0.8796 I1112 15:51:42.056721 140547172456256 train.py:23] epoch 100 best test acc: 0.9120, train loss: 0.4648; train acc: 0.8855 val acc: 0.8858 test acc: 0.8781 I1112 15:51:44.873314 140547172456256 train.py:23] epoch 101 best test acc: 0.9120, train loss: 0.5454; train acc: 0.8297 val acc: 0.8380 test acc: 0.8287 I1112 15:51:47.643314 140547172456256 train.py:23] epoch 102 best test acc: 0.9120, train loss: 0.7081; train acc: 0.7628 val acc: 0.7577 test acc: 0.7639 I1112 15:51:50.416873 140547172456256 train.py:23] epoch 103 best test acc: 0.9120, train loss: 0.5950; train acc: 0.8089 val acc: 0.8148 test acc: 0.8225 I1112 15:51:53.174419 140547172456256 train.py:23] epoch 104 best test acc: 0.9120, train loss: 0.5965; train acc: 0.8880 val acc: 0.8966 test acc: 0.8858 I1112 15:51:55.937005 140547172456256 train.py:23] epoch 105 best test acc: 0.9120, train loss: 0.4456; train acc: 0.8085 val acc: 0.7994 test acc: 0.8102 I1112 15:51:58.697602 140547172456256 train.py:23] epoch 106 best test acc: 0.9120, train loss: 0.3856; train acc: 0.8845 val acc: 0.8920 test acc: 0.8827 I1112 15:52:01.455598 140547172456256 train.py:23] epoch 107 best test acc: 0.9120, train loss: 0.3945; train acc: 0.8758 val acc: 0.8827 test acc: 0.8781 I1112 15:52:04.220047 140547172456256 train.py:23] epoch 108 best test acc: 0.9120, train loss: 0.3926; train acc: 0.8270 val acc: 0.8380 test acc: 0.8349 I1112 15:52:06.988749 140547172456256 train.py:23] epoch 109 best test acc: 0.9120, train loss: 0.4028; train acc: 0.8342 val acc: 0.8472 test acc: 0.8380 I1112 15:52:09.750616 140547172456256 train.py:23] epoch 110 best test acc: 0.9120, train loss: 0.4056; train acc: 0.9078 val acc: 0.9105 test acc: 0.9074 I1112 15:52:12.517018 140547172456256 train.py:23] epoch 111 best test acc: 0.9120, train loss: 0.4972; train acc: 0.8299 val acc: 0.8441 test acc: 0.8302 I1112 15:52:15.279418 140547172456256 train.py:23] epoch 112 best test acc: 0.9120, train loss: 0.3514; train acc: 0.8857 val acc: 0.8997 test acc: 0.8765 I1112 15:52:18.042814 140547172456256 train.py:23] epoch 113 best test acc: 0.9120, train loss: 0.4088; train acc: 0.8276 val acc: 0.8472 test acc: 0.8272 I1112 15:52:20.812852 140547172456256 train.py:23] epoch 114 best test acc: 0.9120, train loss: 0.4402; train acc: 0.8137 val acc: 0.8225 test acc: 0.8179 I1112 15:52:23.571869 140547172456256 train.py:23] epoch 115 best test acc: 0.9120, train loss: 0.4475; train acc: 0.8504 val acc: 0.8673 test acc: 0.8441 I1112 15:52:26.362869 140547172456256 train.py:23] epoch 116 best test acc: 0.9120, train loss: 0.4440; train acc: 0.8623 val acc: 0.8827 test acc: 0.8549 I1112 15:52:29.118060 140547172456256 train.py:23] epoch 117 best test acc: 0.9120, train loss: 0.4379; train acc: 0.8479 val acc: 0.8642 test acc: 0.8410 I1112 15:52:31.930736 140547172456256 train.py:23] epoch 118 best test acc: 0.9120, train loss: 0.4685; train acc: 0.8533 val acc: 0.8704 test acc: 0.8457 I1112 15:52:34.699009 140547172456256 train.py:23] epoch 119 best test acc: 0.9120, train loss: 0.4813; train acc: 0.8384 val acc: 0.8519 test acc: 0.8349 I1112 15:52:37.471475 140547172456256 train.py:23] epoch 120 best test acc: 0.9120, train loss: 0.4721; train acc: 0.8652 val acc: 0.8843 test acc: 0.8549 I1112 15:52:40.228284 140547172456256 train.py:23] epoch 121 best test acc: 0.9120, train loss: 0.4526; train acc: 0.8284 val acc: 0.8441 test acc: 0.8302 I1112 15:52:42.983278 140547172456256 train.py:23] epoch 122 best test acc: 0.9120, train loss: 0.4467; train acc: 0.8101 val acc: 0.8225 test acc: 0.8133 I1112 15:52:45.744797 140547172456256 train.py:23] epoch 123 best test acc: 0.9120, train loss: 0.3519; train acc: 0.8833 val acc: 0.9012 test acc: 0.8781 I1112 15:52:48.502303 140547172456256 train.py:23] epoch 124 best test acc: 0.9120, train loss: 0.3391; train acc: 0.9038 val acc: 0.9074 test acc: 0.9090 I1112 15:52:51.259793 140547172456256 train.py:23] epoch 125 best test acc: 0.9120, train loss: 0.4266; train acc: 0.8473 val acc: 0.8627 test acc: 0.8519 I1112 15:52:54.020490 140547172456256 train.py:23] epoch 126 best test acc: 0.9120, train loss: 0.5247; train acc: 0.7054 val acc: 0.7207 test acc: 0.7145 I1112 15:52:56.777758 140547172456256 train.py:23] epoch 127 best test acc: 0.9120, train loss: 0.5110; train acc: 0.8903 val acc: 0.8935 test acc: 0.8889 I1112 15:52:59.549555 140547172456256 train.py:23] epoch 128 best test acc: 0.9120, train loss: 0.5320; train acc: 0.7023 val acc: 0.7145 test acc: 0.7176 I1112 15:53:02.402307 140547172456256 train.py:23] epoch 129 best test acc: 0.9120, train loss: 0.3754; train acc: 0.8666 val acc: 0.8735 test acc: 0.8642 I1112 15:53:05.158126 140547172456256 train.py:23] epoch 130 best test acc: 0.9120, train loss: 0.3422; train acc: 0.8963 val acc: 0.8997 test acc: 0.8920 I1112 15:53:07.911795 140547172456256 train.py:23] epoch 131 best test acc: 0.9120, train loss: 0.4212; train acc: 0.8072 val acc: 0.8102 test acc: 0.8040 I1112 15:53:10.724231 140547172456256 train.py:23] epoch 132 best test acc: 0.9120, train loss: 0.3984; train acc: 0.8577 val acc: 0.8642 test acc: 0.8519 I1112 15:53:13.498905 140547172456256 train.py:23] epoch 133 best test acc: 0.9120, train loss: 0.4417; train acc: 0.8303 val acc: 0.8380 test acc: 0.8210 I1112 15:53:16.274668 140547172456256 train.py:23] epoch 134 best test acc: 0.9120, train loss: 0.4622; train acc: 0.8463 val acc: 0.8503 test acc: 0.8395 I1112 15:53:19.035961 140547172456256 train.py:23] epoch 135 best test acc: 0.9120, train loss: 0.6824; train acc: 0.7061 val acc: 0.7191 test acc: 0.7130 I1112 15:53:21.796615 140547172456256 train.py:23] epoch 136 best test acc: 0.9120, train loss: 0.5042; train acc: 0.8590 val acc: 0.8735 test acc: 0.8580 I1112 15:53:24.554052 140547172456256 train.py:23] epoch 137 best test acc: 0.9120, train loss: 0.5136; train acc: 0.7686 val acc: 0.7793 test acc: 0.7731 I1112 15:53:27.308766 140547172456256 train.py:23] epoch 138 best test acc: 0.9120, train loss: 0.4965; train acc: 0.7486 val acc: 0.7546 test acc: 0.7562 I1112 15:53:30.071453 140547172456256 train.py:23] epoch 139 best test acc: 0.9120, train loss: 0.5029; train acc: 0.8502 val acc: 0.8611 test acc: 0.8472 I1112 15:53:32.831556 140547172456256 train.py:23] epoch 140 best test acc: 0.9120, train loss: 0.5234; train acc: 0.7144 val acc: 0.7269 test acc: 0.7191 I1112 15:53:35.598645 140547172456256 train.py:23] epoch 141 best test acc: 0.9120, train loss: 0.6212; train acc: 0.5008 val acc: 0.5000 test acc: 0.5031 I1112 15:53:38.356886 140547172456256 train.py:23] epoch 142 best test acc: 0.9120, train loss: 0.4760; train acc: 0.7916 val acc: 0.7824 test acc: 0.7793 I1112 15:53:41.115776 140547172456256 train.py:23] epoch 143 best test acc: 0.9120, train loss: 0.3932; train acc: 0.8565 val acc: 0.8704 test acc: 0.8565 I1112 15:53:43.875584 140547172456256 train.py:23] epoch 144 best test acc: 0.9120, train loss: 0.3257; train acc: 0.9040 val acc: 0.9059 test acc: 0.9012 I1112 15:53:46.641317 140547172456256 train.py:23] epoch 145 best test acc: 0.9120, train loss: 0.3381; train acc: 0.8718 val acc: 0.8488 test acc: 0.8627 I1112 15:53:49.406296 140547172456256 train.py:23] epoch 146 best test acc: 0.9120, train loss: 0.2581; train acc: 0.9098 val acc: 0.9074 test acc: 0.9059 I1112 15:53:52.158921 140547172456256 train.py:23] epoch 147 best test acc: 0.9120, train loss: 0.3683; train acc: 0.8695 val acc: 0.8534 test acc: 0.8673 I1112 15:53:54.943026 140547172456256 train.py:23] epoch 148 best test acc: 0.9120, train loss: 0.5825; train acc: 0.7065 val acc: 0.6759 test acc: 0.6759 I1112 15:53:57.714968 140547172456256 train.py:23] epoch 149 best test acc: 0.9120, train loss: 1.2555; train acc: 0.7894 val acc: 0.7809 test acc: 0.7639 I1112 15:54:00.496615 140547172456256 train.py:23] epoch 150 best test acc: 0.9120, train loss: 1.8263; train acc: 0.5685 val acc: 0.5725 test acc: 0.5694 I1112 15:54:03.249165 140547172456256 train.py:23] epoch 151 best test acc: 0.9120, train loss: 1.9034; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:54:05.935368 140547172456256 train.py:23] epoch 152 best test acc: 0.9120, train loss: 1.4316; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:54:08.611667 140547172456256 train.py:23] epoch 153 best test acc: 0.9120, train loss: 0.8392; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:54:11.285194 140547172456256 train.py:23] epoch 154 best test acc: 0.9120, train loss: 0.7200; train acc: 0.5418 val acc: 0.5586 test acc: 0.5586 I1112 15:54:13.955766 140547172456256 train.py:23] epoch 155 best test acc: 0.9120, train loss: 1.2044; train acc: 0.5538 val acc: 0.5741 test acc: 0.5694 I1112 15:54:16.633017 140547172456256 train.py:23] epoch 156 best test acc: 0.9120, train loss: 1.6809; train acc: 0.5632 val acc: 0.5802 test acc: 0.5818 I1112 15:54:19.312265 140547172456256 train.py:23] epoch 157 best test acc: 0.9120, train loss: 1.9080; train acc: 0.5783 val acc: 0.5972 test acc: 0.5972 I1112 15:54:21.984429 140547172456256 train.py:23] epoch 158 best test acc: 0.9120, train loss: 1.8633; train acc: 0.6012 val acc: 0.6235 test acc: 0.6096 I1112 15:54:24.677087 140547172456256 train.py:23] epoch 159 best test acc: 0.9120, train loss: 1.5951; train acc: 0.6302 val acc: 0.6481 test acc: 0.6451 I1112 15:54:27.356057 140547172456256 train.py:23] epoch 160 best test acc: 0.9120, train loss: 0.9398; train acc: 0.7329 val acc: 0.7423 test acc: 0.7407 I1112 15:54:30.087539 140547172456256 train.py:23] epoch 161 best test acc: 0.9120, train loss: 0.9065; train acc: 0.8320 val acc: 0.8410 test acc: 0.8179 I1112 15:54:32.832378 140547172456256 train.py:23] epoch 162 best test acc: 0.9120, train loss: 0.5656; train acc: 0.6832 val acc: 0.7160 test acc: 0.6898 I1112 15:54:35.577394 140547172456256 train.py:23] epoch 163 best test acc: 0.9120, train loss: 0.6688; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:54:38.350401 140547172456256 train.py:23] epoch 164 best test acc: 0.9120, train loss: 1.0032; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:54:41.099882 140547172456256 train.py:23] epoch 165 best test acc: 0.9120, train loss: 1.2977; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:54:43.900535 140547172456256 train.py:23] epoch 166 best test acc: 0.9120, train loss: 1.3740; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:54:46.642547 140547172456256 train.py:23] epoch 167 best test acc: 0.9120, train loss: 1.2039; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:54:49.415602 140547172456256 train.py:23] epoch 168 best test acc: 0.9120, train loss: 0.8786; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:54:52.157383 140547172456256 train.py:23] epoch 169 best test acc: 0.9120, train loss: 0.6898; train acc: 0.5048 val acc: 0.5093 test acc: 0.5093 I1112 15:54:54.901844 140547172456256 train.py:23] epoch 170 best test acc: 0.9120, train loss: 0.8942; train acc: 0.5027 val acc: 0.5046 test acc: 0.5046 I1112 15:54:57.643233 140547172456256 train.py:23] epoch 171 best test acc: 0.9120, train loss: 1.2203; train acc: 0.5017 val acc: 0.5015 test acc: 0.5031 I1112 15:55:00.388775 140547172456256 train.py:23] epoch 172 best test acc: 0.9120, train loss: 1.3849; train acc: 0.5004 val acc: 0.5000 test acc: 0.5015 I1112 15:55:03.135487 140547172456256 train.py:23] epoch 173 best test acc: 0.9120, train loss: 1.3054; train acc: 0.5002 val acc: 0.5000 test acc: 0.5000 I1112 15:55:05.882569 140547172456256 train.py:23] epoch 174 best test acc: 0.9120, train loss: 1.0149; train acc: 0.5002 val acc: 0.5000 test acc: 0.5000 I1112 15:55:08.628256 140547172456256 train.py:23] epoch 175 best test acc: 0.9120, train loss: 0.7225; train acc: 0.5002 val acc: 0.5000 test acc: 0.5000 I1112 15:55:11.371702 140547172456256 train.py:23] epoch 176 best test acc: 0.9120, train loss: 0.7835; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:14.116631 140547172456256 train.py:23] epoch 177 best test acc: 0.9120, train loss: 1.1120; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:16.863706 140547172456256 train.py:23] epoch 178 best test acc: 0.9120, train loss: 1.3536; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:19.616433 140547172456256 train.py:23] epoch 179 best test acc: 0.9120, train loss: 1.3649; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:22.364442 140547172456256 train.py:23] epoch 180 best test acc: 0.9120, train loss: 1.1435; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:25.111528 140547172456256 train.py:23] epoch 181 best test acc: 0.9120, train loss: 0.8121; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:27.872689 140547172456256 train.py:23] epoch 182 best test acc: 0.9120, train loss: 0.7075; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:30.643410 140547172456256 train.py:23] epoch 183 best test acc: 0.9120, train loss: 0.9747; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:33.425593 140547172456256 train.py:23] epoch 184 best test acc: 0.9120, train loss: 1.2807; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:36.189659 140547172456256 train.py:23] epoch 185 best test acc: 0.9120, train loss: 1.3892; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:38.962731 140547172456256 train.py:23] epoch 186 best test acc: 0.9120, train loss: 1.2462; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:41.708002 140547172456256 train.py:23] epoch 187 best test acc: 0.9120, train loss: 0.9284; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:44.456668 140547172456256 train.py:23] epoch 188 best test acc: 0.9120, train loss: 0.6960; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:47.199663 140547172456256 train.py:23] epoch 189 best test acc: 0.9120, train loss: 0.8551; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:49.941739 140547172456256 train.py:23] epoch 190 best test acc: 0.9120, train loss: 1.1849; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:52.687027 140547172456256 train.py:23] epoch 191 best test acc: 0.9120, train loss: 1.3712; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:55.427909 140547172456256 train.py:23] epoch 192 best test acc: 0.9120, train loss: 1.3212; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:55:58.167148 140547172456256 train.py:23] epoch 193 best test acc: 0.9120, train loss: 1.0556; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:00.910926 140547172456256 train.py:23] epoch 194 best test acc: 0.9120, train loss: 0.7471; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:03.657994 140547172456256 train.py:23] epoch 195 best test acc: 0.9120, train loss: 0.7490; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:06.405178 140547172456256 train.py:23] epoch 196 best test acc: 0.9120, train loss: 1.0542; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:09.156939 140547172456256 train.py:23] epoch 197 best test acc: 0.9120, train loss: 1.3151; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:11.899834 140547172456256 train.py:23] epoch 198 best test acc: 0.9120, train loss: 1.3564; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:14.644973 140547172456256 train.py:23] epoch 199 best test acc: 0.9120, train loss: 1.1590; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:17.432653 140547172456256 train.py:23] epoch 200 best test acc: 0.9120, train loss: 0.8364; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:20.299710 140547172456256 train.py:23] epoch 201 best test acc: 0.9120, train loss: 0.6981; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:23.126930 140547172456256 train.py:23] epoch 202 best test acc: 0.9120, train loss: 0.9328; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:26.017116 140547172456256 train.py:23] epoch 203 best test acc: 0.9120, train loss: 1.2437; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:28.749485 140547172456256 train.py:23] epoch 204 best test acc: 0.9120, train loss: 1.3754; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:31.446769 140547172456256 train.py:23] epoch 205 best test acc: 0.9120, train loss: 1.2595; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:34.132292 140547172456256 train.py:23] epoch 206 best test acc: 0.9120, train loss: 0.9565; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:36.801638 140547172456256 train.py:23] epoch 207 best test acc: 0.9120, train loss: 0.7029; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:39.476874 140547172456256 train.py:23] epoch 208 best test acc: 0.9120, train loss: 0.8232; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:42.150356 140547172456256 train.py:23] epoch 209 best test acc: 0.9120, train loss: 1.1527; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:44.818868 140547172456256 train.py:23] epoch 210 best test acc: 0.9120, train loss: 1.3633; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:47.487900 140547172456256 train.py:23] epoch 211 best test acc: 0.9120, train loss: 1.3360; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:50.159335 140547172456256 train.py:23] epoch 212 best test acc: 0.9120, train loss: 1.0868; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:52.829516 140547172456256 train.py:23] epoch 213 best test acc: 0.9120, train loss: 0.7682; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:55.501109 140547172456256 train.py:23] epoch 214 best test acc: 0.9120, train loss: 0.7315; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:56:58.174281 140547172456256 train.py:23] epoch 215 best test acc: 0.9120, train loss: 1.0313; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:00.858530 140547172456256 train.py:23] epoch 216 best test acc: 0.9120, train loss: 1.3165; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:03.530918 140547172456256 train.py:23] epoch 217 best test acc: 0.9120, train loss: 1.3862; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:06.207875 140547172456256 train.py:23] epoch 218 best test acc: 0.9120, train loss: 1.2168; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:08.881698 140547172456256 train.py:23] epoch 219 best test acc: 0.9120, train loss: 0.8883; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:11.594131 140547172456256 train.py:23] epoch 220 best test acc: 0.9120, train loss: 0.6932; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:14.266294 140547172456256 train.py:23] epoch 221 best test acc: 0.9120, train loss: 0.8966; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:16.996408 140547172456256 train.py:23] epoch 222 best test acc: 0.9120, train loss: 1.2231; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:19.664427 140547172456256 train.py:23] epoch 223 best test acc: 0.9120, train loss: 1.3816; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:22.364999 140547172456256 train.py:23] epoch 224 best test acc: 0.9120, train loss: 1.2949; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:25.076597 140547172456256 train.py:23] epoch 225 best test acc: 0.9120, train loss: 1.0061; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:27.747164 140547172456256 train.py:23] epoch 226 best test acc: 0.9120, train loss: 0.7199; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:30.421473 140547172456256 train.py:23] epoch 227 best test acc: 0.9120, train loss: 0.7876; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:33.090271 140547172456256 train.py:23] epoch 228 best test acc: 0.9120, train loss: 1.1145; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:35.759325 140547172456256 train.py:23] epoch 229 best test acc: 0.9120, train loss: 1.3484; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:38.431622 140547172456256 train.py:23] epoch 230 best test acc: 0.9120, train loss: 1.3503; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:41.103100 140547172456256 train.py:23] epoch 231 best test acc: 0.9120, train loss: 1.1246; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:43.775609 140547172456256 train.py:23] epoch 232 best test acc: 0.9120, train loss: 0.7992; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:46.447662 140547172456256 train.py:23] epoch 233 best test acc: 0.9120, train loss: 0.7121; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:49.121537 140547172456256 train.py:23] epoch 234 best test acc: 0.9120, train loss: 0.9825; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:51.791544 140547172456256 train.py:23] epoch 235 best test acc: 0.9120, train loss: 1.2777; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:54.468204 140547172456256 train.py:23] epoch 236 best test acc: 0.9120, train loss: 1.3703; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:57.138005 140547172456256 train.py:23] epoch 237 best test acc: 0.9120, train loss: 1.2233; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:57:59.811052 140547172456256 train.py:23] epoch 238 best test acc: 0.9120, train loss: 0.9051; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:02.484659 140547172456256 train.py:23] epoch 239 best test acc: 0.9120, train loss: 0.6939; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:05.193472 140547172456256 train.py:23] epoch 240 best test acc: 0.9120, train loss: 0.8703; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:07.863769 140547172456256 train.py:23] epoch 241 best test acc: 0.9120, train loss: 1.1968; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:10.712868 140547172456256 train.py:23] epoch 242 best test acc: 0.9120, train loss: 1.3778; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:13.670826 140547172456256 train.py:23] epoch 243 best test acc: 0.9120, train loss: 1.3188; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:16.668537 140547172456256 train.py:23] epoch 244 best test acc: 0.9120, train loss: 1.0441; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:19.627417 140547172456256 train.py:23] epoch 245 best test acc: 0.9120, train loss: 0.7401; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:22.545170 140547172456256 train.py:23] epoch 246 best test acc: 0.9120, train loss: 0.7561; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:25.495682 140547172456256 train.py:23] epoch 247 best test acc: 0.9120, train loss: 1.0728; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:28.443551 140547172456256 train.py:23] epoch 248 best test acc: 0.9120, train loss: 1.3343; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:31.364842 140547172456256 train.py:23] epoch 249 best test acc: 0.9120, train loss: 1.3768; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:34.285497 140547172456256 train.py:23] epoch 250 best test acc: 0.9120, train loss: 1.1775; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:37.198900 140547172456256 train.py:23] epoch 251 best test acc: 0.9120, train loss: 0.8465; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:40.116676 140547172456256 train.py:23] epoch 252 best test acc: 0.9120, train loss: 0.6972; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:43.053169 140547172456256 train.py:23] epoch 253 best test acc: 0.9120, train loss: 0.9337; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:45.972529 140547172456256 train.py:23] epoch 254 best test acc: 0.9120, train loss: 1.2513; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:48.898423 140547172456256 train.py:23] epoch 255 best test acc: 0.9120, train loss: 1.3876; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:51.823688 140547172456256 train.py:23] epoch 256 best test acc: 0.9120, train loss: 1.2832; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:54.742418 140547172456256 train.py:23] epoch 257 best test acc: 0.9120, train loss: 0.9793; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:58:57.695211 140547172456256 train.py:23] epoch 258 best test acc: 0.9120, train loss: 0.7080; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:59:00.619416 140547172456256 train.py:23] epoch 259 best test acc: 0.9120, train loss: 0.8129; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:59:03.585923 140547172456256 train.py:23] epoch 260 best test acc: 0.9120, train loss: 1.1467; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:59:06.531333 140547172456256 train.py:23] epoch 261 best test acc: 0.9120, train loss: 1.3683; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:59:09.460025 140547172456256 train.py:23] epoch 262 best test acc: 0.9120, train loss: 1.3521; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:59:12.378901 140547172456256 train.py:23] epoch 263 best test acc: 0.9120, train loss: 1.1071; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:59:15.332750 140547172456256 train.py:23] epoch 264 best test acc: 0.9120, train loss: 0.7811; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:59:18.248873 140547172456256 train.py:23] epoch 265 best test acc: 0.9120, train loss: 0.7227; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000 I1112 15:59:21.171850 140547172456256 train.py:23] epoch 266 best test acc: 0.9120, train loss: 1.0098; train acc: 0.5000 val acc: 0.5000 test acc: 0.5000


    And I don't know why it decreases to 0.5... Further, I saw that the FeedForwardNetwork uses an nn.LogSoftmax(dim=-1) in self.layer2. While the loss function torch.cross_entropy() expects raw, unnormalized scores. Is the nn.LogSoftmax(dim=-1) in self.layer2 in FeedForwardNetwork unnecessary?

    opened by xiawenwen49 4
  • Wrong debug info

    Wrong debug info

    I think it should be:

        def get_best_acc(self, val):
            if val:
                max_step = int(np.argmax(np.array(self.val_accs)))
                return self.val_accs[max_step], max_step
            else:
                max_step = int(np.argmax(np.array(self.test_accs)))
                return self.test_accs[max_step], max_step
    
        def get_best_auc(self, val):
            if val:
                max_step = int(np.argmax(np.array(self.val_aucs)))
                return self.val_aucs[max_step], max_step
            else:
                max_step = int(np.argmax(np.array(self.test_aucs)))
                return self.test_aucs[max_step], max_step
    

    rather than https://github.com/snap-stanford/distance-encoding/blob/45d49011a53bf1ad1679609b46689d458daa122b/train.py#L101-L113

    opened by LeVan146 3
  • Implementation of PARALLEL

    Implementation of PARALLEL

    Hi, I am very appreciate your work. I have trouble performing DEGNN on OGBn-arXiv as the slow serial implementation. And the "--parallel" setting now can;t work. Would you please fix the implementation of PARALLEL?

    opened by hhr114 2
  • The basis of DEGNN

    The basis of DEGNN

    The paper said "We choose GCN as the basic WLGNN and implement three variants of DEGNNs over it." in Section 5. However, in the code, DEGNN uses TAGConv instead of GCNConv in the models.py file?

    opened by Junshuai-Song 2
  • Where are the node features added?

    Where are the node features added?

    The paper says DE can be used as extra node features. Specifically, we improve WLGNNs by adding the set aggregation. Where is that set aggregation created and where are the node features added?

    opened by kvdsouza 0
  • The performance of GCN on celegans

    The performance of GCN on celegans

    The performance of GCN (best test auc: 0.8990) seems much higher than reported in Table 1?

    Here are the results of DE-GNN (DE) pcl@ubuntu:~/houye/distance-encoding$ python main.py --dataset celegans --feature sp --hidden_features 100 --prop_depth 1 --test_ratio 0.1 --epoch 300 INFO:root:Create log file at ./log/celegans/1609747497.5670385.log INFO:root:Command line executed: python main.py --dataset celegans --feature sp --hidden_features 100 --prop_depth 1 --test_ratio 0.1 --epoch 300 INFO:root:Full args parsed: INFO:root:Namespace(N=1000, T=6, bs=64, data_usage=1.0, dataset='celegans', debug=False, directed=False, dropout=0, epoch=300, feature='sp', gpu=0, hidden_features=100, k=3, l2=0, layers=2, log_dir='./log/', lr=0.0001, max_sp=3, metric='auc', model='DE-GNN', n=None, optimizer='sgd', parallel=False, prop_depth=1, rw_depth=3, seed=0, summary_file='result_summary.log', test_ratio=0.1, use_attributes=False, use_degree=True) INFO:root:Read in celegans for link_prediction -- number of nodes: 297, number of edges: 2148, number of labels: 0. Directed: False INFO:root:Labels unavailable. Generating training/test instances from dataset ... INFO:root:Generate 4296 train+val+test instances in total. data_usage: 1.0. INFO:root:Encode positions ... (Parallel: False) 100%|█████████████████████████████████████████████████████████████████████████████████████| 4296/4296 [02:53<00:00, 24.80it/s] INFO:root:Train size :3438, val size: 429, test size: 429, val ratio: 0.1, test ratio: 0.1 INFO:root:Data roughly takes 0.3751 GB in total INFO:root:Model: DE-GNN, #layers: ModuleList( (0): TAGConv(6, 100, K=1) (1): TAGConv(100, 100, K=1) ), in_features: 6, hidden_features: 100, out_features: 2 INFO:root:epoch 0 best test auc: 0.8349, train loss: 0.6272; train auc: 0.8469 val auc: 0.8319 test auc: 0.8349 INFO:root:epoch 1 best test auc: 0.8354, train loss: 0.5378; train auc: 0.8465 val auc: 0.8338 test auc: 0.8354 INFO:root:epoch 2 best test auc: 0.8361, train loss: 0.4864; train auc: 0.8483 val auc: 0.8357 test auc: 0.8361 。。。 INFO:root:epoch 92 best test auc: 0.9079, train loss: 0.3701; train auc: 0.9192 val auc: 0.9211 test auc: 0.9015 INFO:root:epoch 93 best test auc: 0.9079, train loss: 0.3618; train auc: 0.9191 val auc: 0.9203 test auc: 0.8994

    Here are the results of GCN: (DE) pcl@ubuntu:~/houye/distance-encoding$ python main.py --dataset celegans --feature sp --hidden_features 100 --prop_depth 1 --test_ratio 0.1 --epoch 300 --model GCN INFO:root:Create log file at ./log/celegans/1609748236.0685709.log INFO:root:Command line executed: python main.py --dataset celegans --feature sp --hidden_features 100 --prop_depth 1 --test_ratio 0.1 --epoch 300 --model GCN INFO:root:Full args parsed: INFO:root:Namespace(N=1000, T=6, bs=64, data_usage=1.0, dataset='celegans', debug=False, directed=False, dropout=0, epoch=300, feature='sp', gpu=0, hidden_features=100, k=3, l2=0, layers=2, log_dir='./log/', lr=0.0001, max_sp=3, metric='auc', model='GCN', n=None, optimizer='sgd', parallel=False, prop_depth=1, rw_depth=3, seed=0, summary_file='result_summary.log', test_ratio=0.1, use_attributes=False, use_degree=True) INFO:root:Read in celegans for link_prediction -- number of nodes: 297, number of edges: 2148, number of labels: 0. Directed: False INFO:root:Labels unavailable. Generating training/test instances from dataset ... INFO:root:Generate 4296 train+val+test instances in total. data_usage: 1.0. INFO:root:Encode positions ... (Parallel: False) 100%|█████████████████████████████████████████████████████████████████████████████████████| 4296/4296 [02:30<00:00, 28.61it/s] INFO:root:Train size :3438, val size: 429, test size: 429, val ratio: 0.1, test ratio: 0.1 INFO:root:Data roughly takes 0.3751 GB in total INFO:root:Model: GCN, #layers: ModuleList( (0): GCNConv(6, 100) (1): GCNConv(100, 100) ), in_features: 6, hidden_features: 100, out_features: 2 INFO:root:epoch 0 best test auc: 0.6766, train loss: 0.6906; train auc: 0.7145 val auc: 0.6903 test auc: 0.6766 INFO:root:epoch 1 best test auc: 0.7055, train loss: 0.6860; train auc: 0.7385 val auc: 0.7157 test auc: 0.7055 INFO:root:epoch 2 best test auc: 0.7191, train loss: 0.6809; train auc: 0.7517 val auc: 0.7274 test auc: 0.7191 INFO:root:epoch 3 best test auc: 0.7246, train loss: 0.6760; train auc: 0.7574 val auc: 0.7332 test auc: 0.7246 。。。 INFO:root:epoch 137 best test auc: 0.8990, train loss: 0.4396; train auc: 0.8980 val auc: 0.8877 test auc: 0.8910 INFO:root:epoch 138 best test auc: 0.8990, train loss: 0.4503; train auc: 0.8963 val auc: 0.8875 test auc: 0.8887 INFO:root:epoch 139 best test auc: 0.8990, train loss: 0.4240; train auc: 0.8979 val auc: 0.8879 test auc: 0.8916 INFO:root:epoch 140 best test auc: 0.8990, train loss: 0.4370; train auc: 0.8970 val auc: 0.8868 test auc: 0.8908 ^Z [2]+ Stopped python main.py --dataset celegans --feature sp --hidden_features 100 --prop_depth 1 --test_ratio 0.1 --epoch 300 --model GCN

    opened by Jhy1993 0
  • OSError: libtorch_cpu.so: cannot open shared object file: No such file or directory

    OSError: libtorch_cpu.so: cannot open shared object file: No such file or directory

    Hello,when I execute following script,throw a error, could you tell me how to solve it? python main.py --dataset celegans --feature sp --hidden_features 100 --prop_depth 1 --test_ratio 0.1 --epoch 300

    opened by BLue1881euLB 0
  • Extended Runtime to 200 hours!

    Extended Runtime to 200 hours!

    Hi :) we've run an implementation of DE set up on OGBL-Collab. Unfortunately our implementation of Distance Encoding is taking 200 hrs to finish: any ideas of optimizations or reasons why this may be so long, and how to fix?

    Thanks.

    opened by kvdsouza 1
Owner
null
[CIKM 2019] Code and dataset for "Fi-GNN: Modeling Feature Interactions via Graph Neural Networks for CTR Prediction"

FiGNN for CTR prediction The code and data for our paper in CIKM2019: Fi-GNN: Modeling Feature Interactions via Graph Neural Networks for CTR Predicti

Big Data and Multi-modal Computing Group, CRIPAC 75 Dec 30, 2022
QA-GNN: Question Answering using Language Models and Knowledge Graphs

QA-GNN: Question Answering using Language Models and Knowledge Graphs This repo provides the source code & data of our paper: QA-GNN: Reasoning with L

Michihiro Yasunaga 434 Jan 4, 2023
Geometric Vector Perceptron --- a rotation-equivariant GNN for learning from biomolecular structure

Geometric Vector Perceptron Code to accompany Learning from Protein Structure with Geometric Vector Perceptrons by B Jing, S Eismann, P Suriana, RJL T

Dror Lab 85 Dec 29, 2022
A graph neural network (GNN) model to predict protein-protein interactions (PPI) with no sample features

A graph neural network (GNN) model to predict protein-protein interactions (PPI) with no sample features

null 2 Jul 25, 2022
GNN-based Recommendation Benchma

GRecX A Fair Benchmark for GNN-based Recommendation Preliminary Comparison DiffNet-Yelp dataset (featureless) Algo nDCG@5 nDCG@10 nDCG@15 MF 0.158707

null 73 Oct 17, 2022
Geometric Vector Perceptrons --- a rotation-equivariant GNN for learning from biomolecular structure

Geometric Vector Perceptron Implementation of equivariant GVP-GNNs as described in Learning from Protein Structure with Geometric Vector Perceptrons b

Dror Lab 142 Dec 29, 2022
DIR-GNN - Discovering Invariant Rationales for Graph Neural Networks

DIR-GNN "Discovering Invariant Rationales for Graph Neural Networks" (ICLR 2022)

Ying-Xin (Shirley) Wu 70 Nov 13, 2022
git《FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding》(CVPR 2021) GitHub: [fig8]

FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding (CVPR 2021) This repo contains the implementation of our state-of-the-art fewshot ob

null 233 Dec 29, 2022
Multi-Scale Vision Longformer: A New Vision Transformer for High-Resolution Image Encoding

Vision Longformer This project provides the source code for the vision longformer paper. Multi-Scale Vision Longformer: A New Vision Transformer for H

Microsoft 209 Dec 30, 2022
Relative Positional Encoding for Transformers with Linear Complexity

Stochastic Positional Encoding (SPE) This is the source code repository for the ICML 2021 paper Relative Positional Encoding for Transformers with Lin

Antoine Liutkus 48 Nov 16, 2022
[ACMMM 2021 Oral] Enhanced Invertible Encoding for Learned Image Compression

InvCompress Official Pytorch Implementation for "Enhanced Invertible Encoding for Learned Image Compression", ACMMM 2021 (Oral) Figure: Our framework

null 96 Nov 30, 2022
AirCode: A Robust Object Encoding Method

AirCode This repo contains source codes for the arXiv preprint "AirCode: A Robust Object Encoding Method" Demo Object matching comparison when the obj

Chen Wang 30 Dec 9, 2022
Pytorch implementation of CVPR2020 paper “VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation”

VectorNet Re-implementation This is the unofficial pytorch implementation of CVPR2020 paper "VectorNet: Encoding HD Maps and Agent Dynamics from Vecto

null 120 Jan 6, 2023
Eth brownie struct encoding example

eth-brownie struct encoding example Overview This repository contains an example of encoding a struct, so that it can be used in a function call, usin

Ittai Svidler 2 Mar 4, 2022
PyTorch implementation of Rethinking Positional Encoding in Language Pre-training

TUPE PyTorch implementation of Rethinking Positional Encoding in Language Pre-training. Quickstart Clone this repository. git clone https://github.com

Jake Tae 5 Jan 27, 2022
The undersampled DWI image using Slice-Interleaved Diffusion Encoding (SIDE) method can be reconstructed by the UNet network.

UNet-SIDE The undersampled DWI image using Slice-Interleaved Diffusion Encoding (SIDE) method can be reconstructed by the UNet network. For Super Reso

TIANTIAN XU 1 Jan 13, 2022
Incremental Transformer Structure Enhanced Image Inpainting with Masking Positional Encoding (CVPR2022)

Incremental Transformer Structure Enhanced Image Inpainting with Masking Positional Encoding by Qiaole Dong*, Chenjie Cao*, Yanwei Fu Paper and Supple

Qiaole Dong 190 Dec 27, 2022
Distributional Sliced-Wasserstein distance code

Distributional Sliced Wasserstein distance This is a pytorch implementation of the paper "Distributional Sliced-Wasserstein and Applications to Genera

VinAI Research 39 Jan 1, 2023