Coder Social home page Coder Social logo

po-chun-chien / fringedt Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 21 KB

An implementation of binary decision tree with fringe-features extraction.

Home Page: https://po-chun-chien.github.io/projects/5.ML+LS/

License: MIT License

Python 100.00%
iwls contest alcom python machine-learning logic-synthesis

fringedt's Introduction

FringeDT

An implementation of binary decision tree with fringe-features extraction.

Introduction

This repository contains one of the methods we used in the IWLS 2020 Programming Contest. We train a binary binary decision tree with fringe-features extraction proposed in [1][2], and convert it into a Boolean logic circuit. You may also refer to the contest description, our DATE'19 paper [3] (written with other contestants) and the project page for more details.

Usage

Before running the program, please make sure you have the required pip packages installed.

pip3 install -r requirements.txt

The training and validation data should be in PLA format. You can download the contest benchmarks via this link. To save the learned binary decision tree model, you can write it into a pickle file with the --save_model flag, and/or dump it into a logic circuit in BLIF format with the --dump_blif flag. Below is an example to run our program. You can use the --help flag to see a more detailed usage.

python3 main.py --train_data benchmarks/train/ex00.train.pla --valid_data benchmarks/validation/ex00.valid.pla --save_model ex00_model.pk --dump_blif ex00_model.blif

References

[1] G. Pagallo and D. Haussler, “Boolean Feature Discovery in Empirical Learning,” Machine Learning, vol. 5, no. 1, p. 71–99, 1990.

[2] A. L. Oliveira and A. Sangiovanni-Vincentelli, “Learning Complex Boolean Functions: Algorithms and Applications,” in Proc. NeurIPS, p. 911–918, 1993.

[3] S. Rai et al., "Logic Synthesis Meets Machine Learning: Trading Exactness for Generalization," in Proc. DATE, 2021.

Suggestions, Questions, Bugs, etc

You are welcome to create an issue to make suggestions, ask questions, or report bugs, etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.