This repo contains the source code and pretrained model for the paper "Semi-Supervised Hotspot Detection with Self-Paced Multi-Task Learning", which is published in 24th Asia and South Pacific Design Automation Conference.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
benchmarks
figs_ROC
models
README.md
gen_ini.py
iccad2_config.ini
iccad3_config.ini
iccad4_config.ini
iccad5_config.ini
model_SSL.py
model_SSL.pyc
run.sh
test_SSL.py
train_SSL.py

README.md

SSL

Source code and pretrained model for 24th Asia and South Pacific Design Automation Conference paper:

Semi-Supervised Hotspot Detection with Self-Paced Multi-Task Learning.

Ying Chen, Yibo Lin, Tianyang Gai, Yajuan Su, Yayi Wei, and David Z. Pan

Dataset

Feature Tensor Extraction Data is already within this repo, original images can be found at http://appsrv.cse.cuhk.edu.hk/~hyyang/files/iccad-official.tgz

Dependencies

numpy, tensorflow (tested on 1.5), pandas, json, ConfigParser, progress

Test on Released Models

e.g. to test iccad2 with 10% labeled samples (random seed = 50) on the released model, you need to modify iccad2_config.ini

set model_path=./models/iccad2/unlossfix_SSL_m10000_p0.1s50/model-p0.1-s50-step9999.ckpt

set train_ratio=0.1

set seed=50

set b=2 and

python test_SSL.py iccad2_config.ini

Train

e.g. to train iccad2 with 10% labeled samples (random seed =50), you need to modify iccad2_config.ini

set save_path=./models/iccad2/ssl/

set train_ratio=0.1

set seed=50

set b=2 and

python train_SSL.py iccad2_config.ini

Test

e.g. to test iccad2, you need to modify iccad2_config.ini

set model_path=./models/iccad2/ssl/model.ckpt(note: This model path should be where you save your model when training)

set train_ratio=0.1

set seed=50

set b=2 and

python test_SSL.py iccad2_config.ini

Batch Process

e.g. to train and test iccad2 with 10%, 30%, 50% labeled samples and different random seeds(50,100,150), you need to modify run.sh as folows:

for b in 2: do

for train_p in 0.1 0.3 0.5; do

for seed in 50 100 150; do

and

source run.sh

then when all the runnings are done, go to folder "log_SSL" to check the testing results.

ROC Curves

To compare results of our approach and Yang's DAC'17 work, we adjust the decision boundary of each model to plot the ROC curves. The ROC curves of each benchmark with different ratios of selected labeled samples are as follows (both average and standard deviation values are drawn for different runs).

"SSL" denotes our approach, "DAC" denotes Yang's work.

"TPR" denotes true positive rate, "FPR" denotes false positive rate.

The vertical line refers to the same FPR values reported by the DAC work.

Acknowledgement

The code is based on Haoyu Yang's source code, thanks for his sharing.