TensorFlow code for Input Convex Neural Networks research paper
Top 90.7% on sourcepulse
This repository provides TensorFlow code for Input Convex Neural Networks (ICNNs), a class of neural networks designed to be convex with respect to their inputs. It enables researchers and practitioners to reproduce experiments from the ICML 2017 paper "Input Convex Neural Networks" and apply ICNNs to tasks like synthetic classification, multi-label classification, image completion, and reinforcement learning.
How It Works
ICNNs achieve input convexity by enforcing specific architectural constraints and using optimization techniques like the bundle entropy method. This approach guarantees desirable properties such as a unique global minimum for the loss function, simplifying optimization and improving generalization. The code implements ICNNs using TensorFlow, allowing for integration with existing deep learning workflows.
Quick Start & Requirements
python src/main.py
with specified model and environment flags.Highlighted Details
Maintenance & Community
The project is authored by Brandon Amos, Leonard Xu, and J. Zico Kolter. The reinforcement learning components are based on the SimonRamstedt/ddpg repository.
Licensing & Compatibility
The source code is primarily licensed under the Apache 2.0 License, with portions from third-party sources carrying their respective licenses (e.g., MIT for DDPG components). This license is generally permissive for commercial use.
Limitations & Caveats
The bundle entropy method implementation is noted as still in progress with ongoing numerical issue fixes. Some multi-label classification experiments may be slightly inconsistent with the published paper.
6 years ago
Inactive